cyberchef
Version:
The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.
1,423 lines (1,422 loc) • 640 kB
JSON
{
"A1Z26 Cipher Decode": {
"module": "Ciphers",
"description": "Converts alphabet order numbers into their corresponding alphabet character.<br><br>e.g. <code>1</code> becomes <code>a</code> and <code>2</code> becomes <code>b</code>.",
"infoURL": "",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Delimiter",
"type": "option",
"value": [
"Space",
"Comma",
"Semi-colon",
"Colon",
"Line feed",
"CRLF"
]
}
],
"checks": [
{
"pattern": "^\\s*([12]?[0-9] )+[12]?[0-9]\\s*$",
"flags": "",
"args": [
"Space"
]
},
{
"pattern": "^\\s*([12]?[0-9],)+[12]?[0-9]\\s*$",
"flags": "",
"args": [
"Comma"
]
},
{
"pattern": "^\\s*([12]?[0-9];)+[12]?[0-9]\\s*$",
"flags": "",
"args": [
"Semi-colon"
]
},
{
"pattern": "^\\s*([12]?[0-9]:)+[12]?[0-9]\\s*$",
"flags": "",
"args": [
"Colon"
]
},
{
"pattern": "^\\s*([12]?[0-9]\\n)+[12]?[0-9]\\s*$",
"flags": "",
"args": [
"Line feed"
]
},
{
"pattern": "^\\s*([12]?[0-9]\\r\\n)+[12]?[0-9]\\s*$",
"flags": "",
"args": [
"CRLF"
]
}
]
},
"A1Z26 Cipher Encode": {
"module": "Ciphers",
"description": "Converts alphabet characters into their corresponding alphabet order number.<br><br>e.g. <code>a</code> becomes <code>1</code> and <code>b</code> becomes <code>2</code>.<br><br>Non-alphabet characters are dropped.",
"infoURL": "",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Delimiter",
"type": "option",
"value": [
"Space",
"Comma",
"Semi-colon",
"Colon",
"Line feed",
"CRLF"
]
}
]
},
"ADD": {
"module": "Default",
"description": "ADD the input with the given key (e.g. <code>fe023da5</code>), MOD 255",
"infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bitwise_operators",
"inputType": "byteArray",
"outputType": "byteArray",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"Decimal",
"Binary",
"Base64",
"UTF8",
"Latin1"
]
}
]
},
"AES Decrypt": {
"module": "Ciphers",
"description": "Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated.<br><br><b>Key:</b> The following algorithms will be used based on the size of the key:<ul><li>16 bytes = AES-128</li><li>24 bytes = AES-192</li><li>32 bytes = AES-256</li></ul><br><br><b>IV:</b> The Initialization Vector should be 16 bytes long. If not entered, it will default to 16 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used as a default.<br><br><b>GCM Tag:</b> This field is ignored unless 'GCM' mode is used.",
"infoURL": "https://wikipedia.org/wiki/Advanced_Encryption_Standard",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "IV",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Mode",
"type": "argSelector",
"value": [
{
"name": "CBC",
"off": [
5,
6
]
},
{
"name": "CFB",
"off": [
5,
6
]
},
{
"name": "OFB",
"off": [
5,
6
]
},
{
"name": "CTR",
"off": [
5,
6
]
},
{
"name": "GCM",
"on": [
5,
6
]
},
{
"name": "ECB",
"off": [
5,
6
]
},
{
"name": "CBC/NoPadding",
"off": [
5,
6
]
},
{
"name": "ECB/NoPadding",
"off": [
5,
6
]
}
]
},
{
"name": "Input",
"type": "option",
"value": [
"Hex",
"Raw"
]
},
{
"name": "Output",
"type": "option",
"value": [
"Raw",
"Hex"
]
},
{
"name": "GCM Tag",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Additional Authenticated Data",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
}
]
},
"AES Encrypt": {
"module": "Ciphers",
"description": "Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated.<br><br><b>Key:</b> The following algorithms will be used based on the size of the key:<ul><li>16 bytes = AES-128</li><li>24 bytes = AES-192</li><li>32 bytes = AES-256</li></ul>You can generate a password-based key using one of the KDF operations.<br><br><b>IV:</b> The Initialization Vector should be 16 bytes long. If not entered, it will default to 16 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used.",
"infoURL": "https://wikipedia.org/wiki/Advanced_Encryption_Standard",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "IV",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Mode",
"type": "argSelector",
"value": [
{
"name": "CBC",
"off": [
5
]
},
{
"name": "CFB",
"off": [
5
]
},
{
"name": "OFB",
"off": [
5
]
},
{
"name": "CTR",
"off": [
5
]
},
{
"name": "GCM",
"on": [
5
]
},
{
"name": "ECB",
"off": [
5
]
}
]
},
{
"name": "Input",
"type": "option",
"value": [
"Raw",
"Hex"
]
},
{
"name": "Output",
"type": "option",
"value": [
"Hex",
"Raw"
]
},
{
"name": "Additional Authenticated Data",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
}
]
},
"AES Key Unwrap": {
"module": "Ciphers",
"description": "Decryptor for a key wrapping algorithm defined in RFC3394, which is used to protect keys in untrusted storage or communications, using AES.<br><br>This algorithm uses an AES key (KEK: key-encryption key) and a 64-bit IV to decrypt 64-bit blocks.",
"infoURL": "https://wikipedia.org/wiki/Key_wrap",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key (KEK)",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "IV",
"type": "toggleString",
"value": "a6a6a6a6a6a6a6a6",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Input",
"type": "option",
"value": [
"Hex",
"Raw"
]
},
{
"name": "Output",
"type": "option",
"value": [
"Hex",
"Raw"
]
}
]
},
"AES Key Wrap": {
"module": "Ciphers",
"description": "A key wrapping algorithm defined in RFC3394, which is used to protect keys in untrusted storage or communications, using AES.<br><br>This algorithm uses an AES key (KEK: key-encryption key) and a 64-bit IV to encrypt 64-bit blocks.",
"infoURL": "https://wikipedia.org/wiki/Key_wrap",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key (KEK)",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "IV",
"type": "toggleString",
"value": "a6a6a6a6a6a6a6a6",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Input",
"type": "option",
"value": [
"Hex",
"Raw"
]
},
{
"name": "Output",
"type": "option",
"value": [
"Hex",
"Raw"
]
}
]
},
"AMF Decode": {
"module": "Encodings",
"description": "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.",
"infoURL": "https://wikipedia.org/wiki/Action_Message_Format",
"inputType": "ArrayBuffer",
"outputType": "JSON",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Format",
"type": "option",
"value": [
"AMF0",
"AMF3"
],
"defaultIndex": 1
}
]
},
"AMF Encode": {
"module": "Encodings",
"description": "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.",
"infoURL": "https://wikipedia.org/wiki/Action_Message_Format",
"inputType": "JSON",
"outputType": "ArrayBuffer",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Format",
"type": "option",
"value": [
"AMF0",
"AMF3"
],
"defaultIndex": 1
}
]
},
"AND": {
"module": "Default",
"description": "AND the input with the given key.<br>e.g. <code>fe023da5</code>",
"infoURL": "https://wikipedia.org/wiki/Bitwise_operation#AND",
"inputType": "byteArray",
"outputType": "byteArray",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"Decimal",
"Binary",
"Base64",
"UTF8",
"Latin1"
]
}
]
},
"Add line numbers": {
"module": "Default",
"description": "Adds line numbers to the output.",
"infoURL": null,
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": []
},
"Add Text To Image": {
"module": "Image",
"description": "Adds text onto an image.<br><br>Text can be horizontally or vertically aligned, or the position can be manually specified.<br>Variants of the Roboto font face are available in any size or colour.",
"infoURL": "",
"inputType": "ArrayBuffer",
"outputType": "html",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Text",
"type": "string",
"value": ""
},
{
"name": "Horizontal align",
"type": "option",
"value": [
"None",
"Left",
"Center",
"Right"
]
},
{
"name": "Vertical align",
"type": "option",
"value": [
"None",
"Top",
"Middle",
"Bottom"
]
},
{
"name": "X position",
"type": "number",
"value": 0
},
{
"name": "Y position",
"type": "number",
"value": 0
},
{
"name": "Size",
"type": "number",
"value": 32,
"min": 8
},
{
"name": "Font face",
"type": "option",
"value": [
"Roboto",
"Roboto Black",
"Roboto Mono",
"Roboto Slab"
]
},
{
"name": "Red",
"type": "number",
"value": 255,
"min": 0,
"max": 255
},
{
"name": "Green",
"type": "number",
"value": 255,
"min": 0,
"max": 255
},
{
"name": "Blue",
"type": "number",
"value": 255,
"min": 0,
"max": 255
},
{
"name": "Alpha",
"type": "number",
"value": 255,
"min": 0,
"max": 255
}
]
},
"Adler-32 Checksum": {
"module": "Crypto",
"description": "Adler-32 is a checksum algorithm which was invented by Mark Adler in 1995, and is a modification of the Fletcher checksum. Compared to a cyclic redundancy check of the same length, it trades reliability for speed (preferring the latter).<br><br>Adler-32 is more reliable than Fletcher-16, and slightly less reliable than Fletcher-32.",
"infoURL": "https://wikipedia.org/wiki/Adler-32",
"inputType": "ArrayBuffer",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": []
},
"Affine Cipher Decode": {
"module": "Ciphers",
"description": "The Affine cipher is a type of monoalphabetic substitution cipher. To decrypt, each letter in an alphabet is mapped to its numeric equivalent, decrypted by a mathematical function, and converted back to a letter.",
"infoURL": "https://wikipedia.org/wiki/Affine_cipher",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "a",
"type": "number",
"value": 1
},
{
"name": "b",
"type": "number",
"value": 0
}
]
},
"Affine Cipher Encode": {
"module": "Ciphers",
"description": "The Affine cipher is a type of monoalphabetic substitution cipher, wherein each letter in an alphabet is mapped to its numeric equivalent, encrypted using simple mathematical function, <code>(ax + b) % 26</code>, and converted back to a letter.",
"infoURL": "https://wikipedia.org/wiki/Affine_cipher",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "a",
"type": "number",
"value": 1
},
{
"name": "b",
"type": "number",
"value": 0
}
]
},
"Analyse hash": {
"module": "Crypto",
"description": "Tries to determine information about a given hash and suggests which algorithm may have been used to generate it based on its length.",
"infoURL": "https://wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": []
},
"Atbash Cipher": {
"module": "Ciphers",
"description": "Atbash is a mono-alphabetic substitution cipher originally used to encode the Hebrew alphabet. It has been modified here for use with the Latin alphabet.",
"infoURL": "https://wikipedia.org/wiki/Atbash",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": []
},
"Avro to JSON": {
"module": "Serialise",
"description": "Converts Avro encoded data into JSON.",
"infoURL": "https://wikipedia.org/wiki/Apache_Avro",
"inputType": "ArrayBuffer",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Force Valid JSON",
"type": "boolean",
"value": true
}
]
},
"BLAKE2b": {
"module": "Hashing",
"description": "Performs BLAKE2b hashing on the input. \n <br><br> BLAKE2b is a flavour of the BLAKE cryptographic hash function that is optimized for 64-bit platforms and produces digests of any size between 1 and 64 bytes.\n <br><br> Supports the use of an optional key.",
"infoURL": "https://wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2b_algorithm",
"inputType": "ArrayBuffer",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Size",
"type": "option",
"value": [
"512",
"384",
"256",
"160",
"128"
]
},
{
"name": "Output Encoding",
"type": "option",
"value": [
"Hex",
"Base64",
"Raw"
]
},
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"UTF8",
"Decimal",
"Base64",
"Hex",
"Latin1"
]
}
]
},
"BLAKE2s": {
"module": "Hashing",
"description": "Performs BLAKE2s hashing on the input. \n <br><br>BLAKE2s is a flavour of the BLAKE cryptographic hash function that is optimized for 8- to 32-bit platforms and produces digests of any size between 1 and 32 bytes.\n <br><br>Supports the use of an optional key.",
"infoURL": "https://wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2",
"inputType": "ArrayBuffer",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Size",
"type": "option",
"value": [
"256",
"160",
"128"
]
},
{
"name": "Output Encoding",
"type": "option",
"value": [
"Hex",
"Base64",
"Raw"
]
},
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"UTF8",
"Decimal",
"Base64",
"Hex",
"Latin1"
]
}
]
},
"BSON deserialise": {
"module": "Serialise",
"description": "BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures, associative arrays (called objects or documents in MongoDB), and various data types of specific interest to MongoDB. The name 'BSON' is based on the term JSON and stands for 'Binary JSON'.<br><br>Input data should be in a raw bytes format.",
"infoURL": "https://wikipedia.org/wiki/BSON",
"inputType": "ArrayBuffer",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": []
},
"BSON serialise": {
"module": "Serialise",
"description": "BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures, associative arrays (called objects or documents in MongoDB), and various data types of specific interest to MongoDB. The name 'BSON' is based on the term JSON and stands for 'Binary JSON'.<br><br>Input data should be valid JSON.",
"infoURL": "https://wikipedia.org/wiki/BSON",
"inputType": "string",
"outputType": "ArrayBuffer",
"flowControl": false,
"manualBake": false,
"args": []
},
"Bacon Cipher Decode": {
"module": "Default",
"description": "Bacon's cipher or the Baconian cipher is a method of steganography devised by Francis Bacon in 1605. A message is concealed in the presentation of text, rather than its content.",
"infoURL": "https://wikipedia.org/wiki/Bacon%27s_cipher",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Alphabet",
"type": "option",
"value": [
"Standard (I=J and U=V)",
"Complete"
]
},
{
"name": "Translation",
"type": "option",
"value": [
"0/1",
"A/B",
"Case",
"A-M/N-Z first letter"
]
},
{
"name": "Invert Translation",
"type": "boolean",
"value": false
}
],
"checks": [
{
"pattern": "^\\s*([01]{5}\\s?)+$",
"flags": "",
"args": [
"Standard (I=J and U=V)",
"0/1",
false
]
},
{
"pattern": "^\\s*([01]{5}\\s?)+$",
"flags": "",
"args": [
"Standard (I=J and U=V)",
"0/1",
true
]
},
{
"pattern": "^\\s*([AB]{5}\\s?)+$",
"flags": "",
"args": [
"Standard (I=J and U=V)",
"A/B",
false
]
},
{
"pattern": "^\\s*([AB]{5}\\s?)+$",
"flags": "",
"args": [
"Standard (I=J and U=V)",
"A/B",
true
]
},
{
"pattern": "^\\s*([01]{5}\\s?)+$",
"flags": "",
"args": [
"Complete",
"0/1",
false
]
},
{
"pattern": "^\\s*([01]{5}\\s?)+$",
"flags": "",
"args": [
"Complete",
"0/1",
true
]
},
{
"pattern": "^\\s*([AB]{5}\\s?)+$",
"flags": "",
"args": [
"Complete",
"A/B",
false
]
},
{
"pattern": "^\\s*([AB]{5}\\s?)+$",
"flags": "",
"args": [
"Complete",
"A/B",
true
]
}
]
},
"Bacon Cipher Encode": {
"module": "Default",
"description": "Bacon's cipher or the Baconian cipher is a method of steganography devised by Francis Bacon in 1605. A message is concealed in the presentation of text, rather than its content.",
"infoURL": "https://wikipedia.org/wiki/Bacon%27s_cipher",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Alphabet",
"type": "option",
"value": [
"Standard (I=J and U=V)",
"Complete"
]
},
{
"name": "Translation",
"type": "option",
"value": [
"0/1",
"A/B"
]
},
{
"name": "Keep extra characters",
"type": "boolean",
"value": false
},
{
"name": "Invert Translation",
"type": "boolean",
"value": false
}
]
},
"Bcrypt": {
"module": "Crypto",
"description": "bcrypt is a password hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher, and presented at USENIX in 1999. Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the iteration count (rounds) can be increased to make it slower, so it remains resistant to brute-force search attacks even with increasing computation power.<br><br>Enter the password in the input to generate its hash.",
"infoURL": "https://wikipedia.org/wiki/Bcrypt",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Rounds",
"type": "number",
"value": 10
}
]
},
"Bcrypt compare": {
"module": "Crypto",
"description": "Tests whether the input matches the given bcrypt hash. To test multiple possible passwords, use the 'Fork' operation.",
"infoURL": "https://wikipedia.org/wiki/Bcrypt",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Hash",
"type": "string",
"value": ""
}
]
},
"Bcrypt parse": {
"module": "Crypto",
"description": "Parses a bcrypt hash to determine the number of rounds used, the salt, and the password hash.",
"infoURL": "https://wikipedia.org/wiki/Bcrypt",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": []
},
"Bifid Cipher Decode": {
"module": "Ciphers",
"description": "The Bifid cipher is a cipher which uses a Polybius square in conjunction with transposition, which can be fairly difficult to decipher without knowing the alphabet keyword.",
"infoURL": "https://wikipedia.org/wiki/Bifid_cipher",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Keyword",
"type": "string",
"value": ""
}
]
},
"Bifid Cipher Encode": {
"module": "Ciphers",
"description": "The Bifid cipher is a cipher which uses a Polybius square in conjunction with transposition, which can be fairly difficult to decipher without knowing the alphabet keyword.",
"infoURL": "https://wikipedia.org/wiki/Bifid_cipher",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Keyword",
"type": "string",
"value": ""
}
]
},
"Bit shift left": {
"module": "Default",
"description": "Shifts the bits in each byte towards the left by the specified amount.",
"infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bit_shifts",
"inputType": "ArrayBuffer",
"outputType": "ArrayBuffer",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Amount",
"type": "number",
"value": 1
}
]
},
"Bit shift right": {
"module": "Default",
"description": "Shifts the bits in each byte towards the right by the specified amount.<br><br><i>Logical shifts</i> replace the leftmost bits with zeros.<br><i>Arithmetic shifts</i> preserve the most significant bit (MSB) of the original byte keeping the sign the same (positive or negative).",
"infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bit_shifts",
"inputType": "ArrayBuffer",
"outputType": "ArrayBuffer",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Amount",
"type": "number",
"value": 1
},
{
"name": "Type",
"type": "option",
"value": [
"Logical shift",
"Arithmetic shift"
]
}
]
},
"Blowfish Decrypt": {
"module": "Ciphers",
"description": "Blowfish is a symmetric-key block cipher designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. AES now receives more attention.<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.",
"infoURL": "https://wikipedia.org/wiki/Blowfish_(cipher)",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "IV",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Mode",
"type": "option",
"value": [
"CBC",
"CFB",
"OFB",
"CTR",
"ECB"
]
},
{
"name": "Input",
"type": "option",
"value": [
"Hex",
"Raw"
]
},
{
"name": "Output",
"type": "option",
"value": [
"Raw",
"Hex"
]
}
]
},
"Blowfish Encrypt": {
"module": "Ciphers",
"description": "Blowfish is a symmetric-key block cipher designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. AES now receives more attention.<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.",
"infoURL": "https://wikipedia.org/wiki/Blowfish_(cipher)",
"inputType": "string",
"outputType": "string",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Key",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "IV",
"type": "toggleString",
"value": "",
"toggleValues": [
"Hex",
"UTF8",
"Latin1",
"Base64"
]
},
{
"name": "Mode",
"type": "option",
"value": [
"CBC",
"CFB",
"OFB",
"CTR",
"ECB"
]
},
{
"name": "Input",
"type": "option",
"value": [
"Raw",
"Hex"
]
},
{
"name": "Output",
"type": "option",
"value": [
"Hex",
"Raw"
]
}
]
},
"Blur Image": {
"module": "Image",
"description": "Applies a blur effect to the image.<br><br>Gaussian blur is much slower than fast blur, but produces better results.",
"infoURL": "https://wikipedia.org/wiki/Gaussian_blur",
"inputType": "ArrayBuffer",
"outputType": "html",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Amount",
"type": "number",
"value": 5,
"min": 1
},
{
"name": "Type",
"type": "option",
"value": [
"Fast",
"Gaussian"
]
}
]
},
"Bombe": {
"module": "Bletchley",
"description": "Emulation of the Bombe machine used at Bletchley Park to attack Enigma, based on work by Polish and British cryptanalysts.<br><br>To run this you need to have a 'crib', which is some known plaintext for a chunk of the target ciphertext, and know the rotors used. (See the 'Bombe (multiple runs)' operation if you don't know the rotors.) The machine will suggest possible configurations of the Enigma. Each suggestion has the rotor start positions (left to right) and known plugboard pairs.<br><br>Choosing a crib: First, note that Enigma cannot encrypt a letter to itself, which allows you to rule out some positions for possible cribs. Secondly, the Bombe does not simulate the Enigma's middle rotor stepping. The longer your crib, the more likely a step happened within it, which will prevent the attack working. However, other than that, longer cribs are generally better. The attack produces a 'menu' which maps ciphertext letters to plaintext, and the goal is to produce 'loops': for example, with ciphertext ABC and crib CAB, we have the mappings A<->C, B<->A, and C<->B, which produces a loop A-B-C-A. The more loops, the better the crib. The operation will output this: if your menu has too few loops or is too short, a large number of incorrect outputs will usually be produced. Try a different crib. If the menu seems good but the right answer isn't produced, your crib may be wrong, or you may have overlapped the middle rotor stepping - try a different crib.<br><br>Output is not sufficient to fully decrypt the data. You will have to recover the rest of the plugboard settings by inspection. And the ring position is not taken into account: this affects when the middle rotor steps. If your output is correct for a bit, and then goes wrong, adjust the ring and start position on the right-hand rotor together until the output improves. If necessary, repeat for the middle rotor.<br><br>By default this operation runs the checking machine, a manual process to verify the quality of Bombe stops, on each stop, discarding stops which fail. If you want to see how many times the hardware actually stops for a given input, disable the checking machine.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",
"infoURL": "https://wikipedia.org/wiki/Bombe",
"inputType": "string",
"outputType": "html",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Model",
"type": "argSelector",
"value": [
{
"name": "3-rotor",
"off": [
1
]
},
{
"name": "4-rotor",
"on": [
1
]
}
]
},
{
"name": "Left-most (4th) rotor",
"type": "editableOption",
"value": [
{
"name": "Beta",
"value": "LEYJVCNIXWPBQMDRTAKZGFUHOS"
},
{
"name": "Gamma",
"value": "FSOKANUERHMBTIYCWLQPZXVGJD"
}
]
},
{
"name": "Left-hand rotor",
"type": "editableOption",
"value": [
{
"name": "I",
"value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
},
{
"name": "II",
"value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
},
{
"name": "III",
"value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
},
{
"name": "IV",
"value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
},
{
"name": "V",
"value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
},
{
"name": "VI",
"value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
},
{
"name": "VII",
"value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
},
{
"name": "VIII",
"value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
}
]
},
{
"name": "Middle rotor",
"type": "editableOption",
"value": [
{
"name": "I",
"value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
},
{
"name": "II",
"value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
},
{
"name": "III",
"value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
},
{
"name": "IV",
"value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
},
{
"name": "V",
"value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
},
{
"name": "VI",
"value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
},
{
"name": "VII",
"value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
},
{
"name": "VIII",
"value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
}
],
"defaultIndex": 1
},
{
"name": "Right-hand rotor",
"type": "editableOption",
"value": [
{
"name": "I",
"value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
},
{
"name": "II",
"value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
},
{
"name": "III",
"value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
},
{
"name": "IV",
"value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
},
{
"name": "V",
"value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
},
{
"name": "VI",
"value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
},
{
"name": "VII",
"value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
},
{
"name": "VIII",
"value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
}
],
"defaultIndex": 2
},
{
"name": "Reflector",
"type": "editableOption",
"value": [
{
"name": "B",
"value": "AY BR CU DH EQ FS GL IP JX KN MO TZ VW"
},
{
"name": "C",
"value": "AF BV CP DJ EI GO HY KR LZ MX NW TQ SU"
},
{
"name": "B Thin",
"value": "AE BN CK DQ FU GY HW IJ LO MP RX SZ TV"
},
{
"name": "C Thin",
"value": "AR BD CO EJ FN GT HK IV LM PW QZ SX UY"
}
]
},
{
"name": "Crib",
"type": "string",
"value": ""
},
{
"name": "Crib offset",
"type": "number",
"value": 0
},
{
"name": "Use checking machine",
"type": "boolean",
"value": true
}
]
},
"Bzip2 Compress": {
"module": "Compression",
"description": "Bzip2 is a compression library developed by Julian Seward (of GHC fame) that uses the Burrows-Wheeler algorithm. It only supports compressing single files and its compression is slow, however is more effective than Deflate (.gz & .zip).",
"infoURL": "https://wikipedia.org/wiki/Bzip2",
"inputType": "ArrayBuffer",
"outputType": "ArrayBuffer",
"flowControl": false,
"manualBake": false,
"args": [
{
"name": "Block size (100s of kb)",
"type": "number",
"value": 9,
"min": 1,
"max": 9
},
{
"name": "Work factor",