{"format":1,"operations":[{"id":"a1z26_decode","v":1,"name":"A1Z26 Decode","summary":"Turn numbers 1–26 back into letters: 1 = A, 2 = B, … 26 = Z.","category":"classical-cipher","tags":["substitution","numbers"],"aliases":["a1z26","A1Z26 Cipher Decode","letter number","numbers to letters"],"input":"bytes","output":"bytes","pair":{"title":"A1Z26","direction":"decode","with":"a1z26_encode"},"chunk":"classical"},{"id":"a1z26_encode","v":1,"name":"A1Z26 Encode","summary":"Replace each letter with its place in the alphabet: A = 1, B = 2, … Z = 26.","category":"classical-cipher","tags":["substitution","numbers"],"aliases":["a1z26","A1Z26 Cipher Encode","letter number","letters to numbers"],"input":"bytes","output":"bytes","pair":{"title":"A1Z26","direction":"encode","with":"a1z26_decode"},"chunk":"classical"},{"id":"add","v":1,"name":"ADD","summary":"Add a key to each byte, modulo 256, repeating the key as needed.","category":"arithmetic","tags":["bitwise","add","modular"],"aliases":["add key","byte add","addition","plus"],"input":"bytes","output":"bytes","inverse":{"op":"sub"},"chunk":"arithmetic"},{"id":"add_line_numbers","v":1,"name":"Add Line Numbers","summary":"Number each line: 1, 2, 3… followed by a separator.","category":"utility","tags":["lines","numbers","nl"],"aliases":["Add line numbers","number lines","nl","cat -n","line numbers"],"input":"text","output":"text","chunk":"utility"},{"id":"add_text_to_image","v":1,"name":"Add Text To Image","summary":"Draw text on an image in CyberScry's own monospaced font, at a position, size and color.","category":"image","tags":["image","pixels","text","draw","watermark","caption"],"aliases":["draw text","caption image","watermark","write on image","annotate image"],"input":"image","output":"image","chunk":"image"},{"id":"adfgvx_decode","v":1,"name":"ADFGVX Decode","summary":"Decrypt ADFGVX or ADFGX: undo the columnar transposition, then read the letter pairs in the square.","category":"classical-cipher","tags":["key-square","fractionating","transposition","ww1"],"aliases":["adfgvx","adfgx","adfgvx cipher","gedefu 18","nebel"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"ADFGVX","direction":"decode","with":"adfgvx_encode"},"chunk":"classical"},{"id":"adfgvx_encode","v":1,"name":"ADFGVX Encode","summary":"Encrypt with the German Army's ADFGVX (or ADFGX) cipher: a lettered square, then a columnar transposition.","category":"classical-cipher","tags":["key-square","fractionating","transposition","ww1"],"aliases":["adfgvx","adfgx","adfgvx cipher","gedefu 18","nebel"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"ADFGVX","direction":"encode","with":"adfgvx_decode"},"chunk":"classical"},{"id":"adler32","v":1,"name":"Adler-32","summary":"Compute the Adler-32 checksum of the input, as zlib and RFC 1950 define it.","category":"hashing","tags":["checksum","adler32","rfc1950","zlib"],"aliases":["Adler-32 Checksum","adler","adler32 checksum","zlib checksum"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"aes_decrypt","v":1,"name":"AES Decrypt","summary":"Decrypt AES-128, -192 or -256 in CBC, CFB, OFB, CTR, GCM or ECB mode.","category":"encryption","tags":["aes","rijndael","block-cipher","cbc","ctr","gcm","fips197"],"aliases":["aes","rijndael","aes-128","aes-256","aes-cbc","aes-gcm","aes-ctr","aes decrypt"],"input":"bytes","output":"bytes","pair":{"title":"AES","direction":"decode","with":"aes_encrypt"},"chunk":"encryption"},{"id":"aes_encrypt","v":1,"name":"AES Encrypt","summary":"Encrypt with AES-128, -192 or -256 in CBC, CFB, OFB, CTR, GCM or ECB mode.","category":"encryption","tags":["aes","rijndael","block-cipher","cbc","ctr","gcm","fips197"],"aliases":["aes","rijndael","aes-128","aes-256","aes-cbc","aes-gcm","aes-ctr","aes encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"aes_decrypt"},"pair":{"title":"AES","direction":"encode","with":"aes_decrypt"},"chunk":"encryption"},{"id":"aes_key_unwrap","v":1,"name":"AES Key Unwrap","summary":"Unwrap key material wrapped with AES Key Wrap (RFC 3394, or RFC 5649 with padding).","category":"encryption","tags":["aes","key-wrap","kw","kwp","rfc3394","rfc5649"],"aliases":["key unwrap","aes kw","aes kwp","rfc 3394","rfc 5649","unwrap key"],"input":"bytes","output":"bytes","pair":{"title":"AES Key Wrap","direction":"decode","with":"aes_key_wrap"},"chunk":"encryption"},{"id":"aes_key_wrap","v":1,"name":"AES Key Wrap","summary":"Wrap key material under an AES key-encryption key (RFC 3394, or RFC 5649 with padding).","category":"encryption","tags":["aes","key-wrap","kw","kwp","rfc3394","rfc5649"],"aliases":["key wrap","aes kw","aes kwp","rfc 3394","rfc 5649","wrap key"],"input":"bytes","output":"bytes","inverse":{"op":"aes_key_unwrap"},"pair":{"title":"AES Key Wrap","direction":"encode","with":"aes_key_unwrap"},"chunk":"encryption"},{"id":"affine_brute_force","v":1,"name":"Affine Brute Force","summary":"Try all 311 affine keys and rank the decryptions by how much they read like English.","category":"analysis","tags":["affine","brute-force","cryptanalysis","monoalphabetic"],"aliases":["affine cracker","affine solver","affine cipher brute force"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"affine_decode","v":1,"name":"Affine Decode","summary":"Decrypt the affine cipher: subtract b, then multiply by the inverse of a mod 26.","category":"classical-cipher","tags":["substitution","monoalphabetic"],"aliases":["affine","affine cipher decode","multiplicative cipher"],"input":"bytes","output":"bytes","inverse":{"op":"affine_encode"},"pair":{"title":"Affine","direction":"decode","with":"affine_encode"},"chunk":"classical"},{"id":"affine_encode","v":1,"name":"Affine Encode","summary":"Encrypt with the affine cipher: multiply each letter's value by a, then add b.","category":"classical-cipher","tags":["substitution","monoalphabetic"],"aliases":["affine","affine cipher encode","multiplicative cipher"],"input":"bytes","output":"bytes","inverse":{"op":"affine_decode"},"pair":{"title":"Affine","direction":"encode","with":"affine_decode"},"chunk":"classical"},{"id":"alternating_caps","v":1,"name":"Alternating Caps","summary":"Alternate letters between lower and upper case: aLtErNaTiNg CaPs.","category":"utility","tags":["case","unicode","text","mocking"],"aliases":["Alternating Caps","studly caps","sponge case","mocking case"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"amf_decode","v":1,"name":"AMF Decode","summary":"Decode Action Message Format (AMF0 or AMF3), Flash and Flex's binary format, to JSON.","category":"data-format","tags":["amf","amf0","amf3","flash","flex","rtmp","serialization","binary"],"aliases":["amf","amf0","amf3","action message format","flex remoting","rtmp"],"input":"bytes","output":"json","pair":{"title":"AMF","direction":"decode","with":"amf_encode"},"chunk":"data-format"},{"id":"amf_encode","v":1,"name":"AMF Encode","summary":"Encode JSON as Action Message Format (AMF3 or AMF0), Flash and Flex's binary format.","category":"data-format","tags":["amf","amf0","amf3","flash","flex","rtmp","serialization","binary"],"aliases":["amf","amf0","amf3","action message format","flex remoting","rtmp"],"input":"json","output":"bytes","inverse":{"op":"amf_decode"},"pair":{"title":"AMF","direction":"encode","with":"amf_decode"},"chunk":"data-format"},{"id":"analyze_hash","v":1,"name":"Analyze Hash","summary":"Guess which algorithms could have made a hash, from its length and alphabet alone.","category":"analysis","tags":["hash","identify","hash-identifier"],"aliases":["Analyse hash","Analyze hash","identify hash","hash identifier","hash type"],"input":"text","output":"table","chunk":"analysis"},{"id":"analyze_uuid","v":1,"name":"Analyze UUID","summary":"Read a UUID's variant and version, and the time, clock sequence and node it holds.","category":"analysis","tags":["uuid","guid","identifier","timestamp","forensics"],"aliases":["Analyse UUID","Analyze UUID","uuid decoder","uuid timestamp","guid"],"input":"text","output":"table","chunk":"analysis"},{"id":"and","v":1,"name":"AND","summary":"AND each byte with a key, repeating the key as needed: keep only the bits set in both.","category":"arithmetic","tags":["bitwise","mask"],"aliases":["bitwise and","mask","&"],"input":"bytes","output":"bytes","chunk":"arithmetic"},{"id":"argon2","v":1,"name":"Argon2","summary":"Hash a password with Argon2id, Argon2i or Argon2d (RFC 9106), as a PHC string or hex.","category":"hashing","tags":["argon2","argon2id","password","kdf","memory-hard","rfc9106","phc"],"aliases":["argon2","argon2id","argon2i","argon2d","password hash"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"argon2_compare","v":1,"name":"Argon2 compare","summary":"Check a password against an Argon2 hash string ($argon2id$v=19$…).","category":"hashing","tags":["argon2","argon2id","password","verify","rfc9106","phc"],"aliases":["argon2 verify","verify argon2","argon2 check"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"ascon_decrypt","v":1,"name":"Ascon Decrypt","summary":"Decrypt and verify Ascon-AEAD128 (NIST SP 800-232): ciphertext followed by its 16-byte tag.","category":"encryption","tags":["ascon","aead","lightweight","sp800-232","nist"],"aliases":["ascon","ascon-aead128","ascon-128","ascon aead","ascon decrypt"],"input":"bytes","output":"bytes","pair":{"title":"Ascon","direction":"decode","with":"ascon_encrypt"},"chunk":"encryption"},{"id":"ascon_encrypt","v":1,"name":"Ascon Encrypt","summary":"Encrypt and authenticate with Ascon-AEAD128 (NIST SP 800-232), the tag after the ciphertext.","category":"encryption","tags":["ascon","aead","lightweight","sp800-232","nist"],"aliases":["ascon","ascon-aead128","ascon-128","ascon aead","ascon encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"ascon_decrypt"},"pair":{"title":"Ascon","direction":"encode","with":"ascon_decrypt"},"chunk":"encryption"},{"id":"ascon_hash","v":1,"name":"Ascon Hash","summary":"Hash with Ascon-Hash256, or Ascon-XOF128 and CXOF128 to any length (NIST SP 800-232).","category":"hashing","tags":["hash","ascon","xof","lightweight","sp800-232","nist"],"aliases":["ascon-hash256","ascon-xof128","ascon-cxof128","ascon hash","ascon xof"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"ascon_mac","v":1,"name":"Ascon MAC","summary":"Compute an Ascon-Mac tag, or the Ascon-Prf or Ascon-PrfShort pseudorandom functions.","category":"hashing","tags":["mac","prf","ascon","lightweight"],"aliases":["ascon-mac","ascon-prf","ascon-prfshort","ascon mac","ascon prf"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"atbash","v":1,"name":"Atbash","summary":"Reverse the alphabet: A becomes Z, B becomes Y, and so on.","category":"classical-cipher","tags":["substitution"],"input":"bytes","output":"bytes","inverse":{"op":"atbash"},"chunk":"classical"},{"id":"autokey_decode","v":1,"name":"Autokey Decode","summary":"Decrypt an autokey: the primer recovers the first letters, which then key the rest.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["autokey","autoclave","autokey cipher","autoclave cipher","vigenere autokey"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"autokey_encode"},"pair":{"title":"Autokey","direction":"decode","with":"autokey_encode"},"chunk":"classical"},{"id":"autokey_encode","v":1,"name":"Autokey Encode","summary":"Encrypt with an autokey: a short primer, then the message itself, is the key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["autokey","autoclave","autokey cipher","autoclave cipher","vigenere autokey"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"autokey_decode"},"pair":{"title":"Autokey","direction":"encode","with":"autokey_decode"},"chunk":"classical"},{"id":"avro_to_json","v":1,"name":"Avro to JSON","summary":"Read an Apache Avro object container file as a JSON array of its records.","category":"data-format","tags":["avro","apache","hadoop","kafka","serialization","json","binary"],"aliases":["avro","avro decode","avro file","avro container"],"input":"bytes","output":"json","chunk":"data-format"},{"id":"bacon_decode","v":1,"name":"Bacon Decode","summary":"Read groups of five a/b symbols back as letters, from symbols, letter case or a cover text.","category":"classical-cipher","tags":["aca","steganography","biliteral"],"aliases":["baconian","bacon cipher","Bacon Cipher Decode","biliteral cipher"],"input":"text","output":"text","pair":{"title":"Bacon","direction":"decode","with":"bacon_encode"},"chunk":"classical"},{"id":"bacon_encode","v":1,"name":"Bacon Encode","summary":"Write each letter as five a/b symbols, as in Francis Bacon's biliteral cipher.","category":"classical-cipher","tags":["aca","steganography","biliteral"],"aliases":["baconian","bacon cipher","Bacon Cipher Encode","biliteral cipher"],"input":"bytes","output":"text","pair":{"title":"Bacon","direction":"encode","with":"bacon_decode"},"chunk":"classical"},{"id":"bcrypt","v":1,"name":"Bcrypt","summary":"Hash a password with bcrypt ($2b$), the adaptive Blowfish-based scheme of OpenBSD.","category":"hashing","tags":["bcrypt","password","blowfish","openbsd","kdf"],"aliases":["bcrypt","$2b$","$2a$","$2y$","blowfish crypt","password hash"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"bcrypt_compare","v":1,"name":"Bcrypt compare","summary":"Check a password against a bcrypt hash ($2a$, $2b$ or $2y$).","category":"hashing","tags":["bcrypt","password","verify","blowfish"],"aliases":["bcrypt verify","verify bcrypt","bcrypt check","checkpw"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"bcrypt_parse","v":1,"name":"Bcrypt parse","summary":"Split a bcrypt hash into its version, cost, salt and hash.","category":"hashing","tags":["bcrypt","password","parse"],"aliases":["parse bcrypt","bcrypt info","bcrypt decode"],"input":"text","output":"json","chunk":"encryption"},{"id":"beaufort","v":1,"name":"Beaufort","summary":"The Beaufort cipher: each letter becomes its key letter minus itself, so the same step decrypts.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","reciprocal"],"aliases":["beaufort cipher","beaufort encode","beaufort decode","reciprocal vigenere","c equals k minus p"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"beaufort"},"chunk":"classical"},{"id":"bifid_decode","v":1,"name":"Bifid Decode","summary":"Decrypt Delastelle's Bifid cipher with the key square and the period it was encrypted with.","category":"classical-cipher","tags":["aca","key-square","fractionating"],"aliases":["bifid","bifid cipher","Bifid Cipher Decode","delastelle","twin bifid"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Bifid","direction":"decode","with":"bifid_encode"},"chunk":"classical"},{"id":"bifid_encode","v":1,"name":"Bifid Encode","summary":"Encrypt with Delastelle's Bifid cipher: split letters into square coordinates, mix them and recombine.","category":"classical-cipher","tags":["aca","key-square","fractionating"],"aliases":["bifid","bifid cipher","Bifid Cipher Encode","delastelle","twin bifid"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Bifid","direction":"encode","with":"bifid_decode"},"chunk":"classical"},{"id":"bit_shift_left","v":1,"name":"Bit shift left","summary":"Shift the bits of each byte to the left, filling with zeros.","category":"arithmetic","tags":["bitwise","shift"],"aliases":["shl","sal","shift left","<<"],"input":"bytes","output":"bytes","chunk":"arithmetic"},{"id":"bit_shift_right","v":1,"name":"Bit shift right","summary":"Shift the bits of each byte to the right: a logical shift fills with zeros, an arithmetic one with the sign bit.","category":"arithmetic","tags":["bitwise","shift"],"aliases":["shr","sar","shift right",">>",">>>"],"input":"bytes","output":"bytes","chunk":"arithmetic"},{"id":"blake2b","v":1,"name":"BLAKE2b","summary":"Compute a BLAKE2b digest of 1 to 64 bytes, optionally keyed.","category":"hashing","tags":["hash","blake2","rfc7693","mac","digest"],"aliases":["blake2","blake2b-512","blake2b-256","b2sum"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"blake2s","v":1,"name":"BLAKE2s","summary":"Compute a BLAKE2s digest of 1 to 32 bytes, optionally keyed.","category":"hashing","tags":["hash","blake2","rfc7693","mac","digest"],"aliases":["blake2s-256","blake2s-128"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"blake3","v":1,"name":"BLAKE3","summary":"Compute a BLAKE3 digest of any length, optionally keyed with a 32-byte key.","category":"hashing","tags":["hash","blake3","xof","mac","digest"],"aliases":["b3sum","blake3 keyed"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"blowfish_decrypt","v":1,"name":"Blowfish Decrypt","summary":"Decrypt Blowfish in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["blowfish","block-cipher","schneier","cbc"],"aliases":["blowfish","bf-cbc","bf-ecb","blowfish decrypt"],"input":"bytes","output":"bytes","pair":{"title":"Blowfish","direction":"decode","with":"blowfish_encrypt"},"chunk":"encryption"},{"id":"blowfish_encrypt","v":1,"name":"Blowfish Encrypt","summary":"Encrypt with Blowfish in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["blowfish","block-cipher","schneier","cbc"],"aliases":["blowfish","bf-cbc","bf-ecb","blowfish encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"blowfish_decrypt"},"pair":{"title":"Blowfish","direction":"encode","with":"blowfish_decrypt"},"chunk":"encryption"},{"id":"blur_image","v":1,"name":"Blur Image","summary":"Blur an image with a Gaussian kernel of a given radius, or with a box (mean) filter.","category":"image","tags":["image","pixels","blur","gaussian","smooth"],"aliases":["gaussian blur","box blur","fast blur","smooth image","soften"],"input":"image","output":"image","chunk":"image"},{"id":"bombe","v":1,"name":"Bombe","summary":"Find Enigma rotor positions and steckers from a crib, as the Turing–Welchman Bombe did.","category":"classical-cipher","tags":["enigma","bombe","crib","cryptanalysis","bletchley","ww2"],"aliases":["turing bombe","turing-welchman bombe","enigma crib attack","enigma cracker"],"family":"machine","input":"bytes","output":"table","chunk":"machines"},{"id":"bson_deserialize","v":1,"name":"BSON Deserialize","summary":"Decode BSON, MongoDB's binary document format, to Extended JSON.","category":"data-format","tags":["bson","mongodb","extended-json","json","serialization","binary"],"aliases":["BSON deserialise","bson","bson decode","bson to json","mongodb","extended json"],"input":"bytes","output":"json","pair":{"title":"BSON","direction":"decode","with":"bson_serialize"},"chunk":"data-format"},{"id":"bson_serialize","v":1,"name":"BSON Serialize","summary":"Encode a JSON object as BSON, MongoDB's binary document format, reading Extended JSON.","category":"data-format","tags":["bson","mongodb","extended-json","json","serialization","binary"],"aliases":["BSON serialise","bson","bson encode","json to bson","mongodb","extended json"],"input":"json","output":"bytes","inverse":{"op":"bson_deserialize"},"pair":{"title":"BSON","direction":"encode","with":"bson_deserialize"},"chunk":"data-format"},{"id":"bzip2_compress","v":1,"name":"Bzip2 Compress","summary":"Compress bytes into the bzip2 format, as bzip2 writes it.","category":"compression","tags":["bzip2","bwt","burrows-wheeler","huffman","compress"],"aliases":["bzip2","bz2",".bz2","bzip"],"input":"bytes","output":"bytes","inverse":{"op":"bzip2_decompress"},"pair":{"title":"Bzip2","direction":"encode","with":"bzip2_decompress"},"chunk":"compression"},{"id":"bzip2_decompress","v":1,"name":"Bzip2 Decompress","summary":"Decompress bzip2 data, checking each block's CRC.","category":"compression","tags":["bzip2","bwt","burrows-wheeler","huffman","decompress"],"aliases":["bunzip2","bzip2 -d","bzcat","bz2",".bz2"],"input":"bytes","output":"bytes","pair":{"title":"Bzip2","direction":"decode","with":"bzip2_compress"},"chunk":"compression"},{"id":"caesar_box_decode","v":1,"name":"Caesar Box Decode","summary":"Undo a Caesar box: fill the box column by column, then read it row by row.","category":"classical-cipher","tags":["transposition","columnar"],"aliases":["caesar box","Caesar Box Cipher","square cipher"],"input":"text","output":"text","inverse":{"op":"caesar_box_encode"},"pair":{"title":"Caesar Box","direction":"decode","with":"caesar_box_encode"},"chunk":"classical"},{"id":"caesar_box_encode","v":1,"name":"Caesar Box Encode","summary":"Write the text into a box row by row, then read it out column by column.","category":"classical-cipher","tags":["transposition","columnar"],"aliases":["caesar box","Caesar Box Cipher","square cipher"],"input":"text","output":"text","inverse":{"op":"caesar_box_decode"},"pair":{"title":"Caesar Box","direction":"encode","with":"caesar_box_decode"},"chunk":"classical"},{"id":"caret_m_decode","v":1,"name":"Caret/M-Decode","summary":"Turn cat -v's caret and M- notation (^M, ^[, M-^@, M-a) back into the bytes it stands for.","category":"utility","tags":["cat","caret","control","terminal","unix"],"aliases":["Caret/M-decode","cat -v","caret notation","meta notation","less notation"],"input":"text","output":"bytes","chunk":"utility"},{"id":"carmichael_function","v":1,"name":"Carmichael Function","summary":"λ(n): the smallest m with aᵐ ≡ 1 (mod n) for every a coprime to n; RSA's λ = lcm(p − 1, q − 1).","category":"arithmetic","tags":["number-theory","totient","rsa"],"aliases":["lambda","carmichael lambda","reduced totient","λ","exponent of the group"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"cartesian_product","v":1,"name":"Cartesian Product","summary":"Every way to pick one item from each sample: A × B × ….","category":"arithmetic","tags":["set","combinatorics","wordlist"],"aliases":["cross product","product","all combinations","wordlist","×"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"cbor_decode","v":1,"name":"CBOR Decode","summary":"Decode CBOR (RFC 8949) to JSON, showing tags, byte strings and simple values.","category":"data-format","tags":["cbor","rfc8949","json","serialization","binary"],"aliases":["cbor","cbor decode","cbor to json","concise binary object representation"],"input":"bytes","output":"json","pair":{"title":"CBOR","direction":"decode","with":"cbor_encode"},"chunk":"data-format"},{"id":"cbor_encode","v":1,"name":"CBOR Encode","summary":"Encode JSON as CBOR (RFC 8949), deterministically by default.","category":"data-format","tags":["cbor","rfc8949","json","serialization","binary"],"aliases":["cbor","cbor encode","json to cbor","concise binary object representation"],"input":"json","output":"bytes","inverse":{"op":"cbor_decode"},"pair":{"title":"CBOR","direction":"encode","with":"cbor_decode"},"chunk":"data-format"},{"id":"cetacean_decode","v":1,"name":"Cetacean Decode","summary":"Read whale song back as text: each 16 E's and e's is one character.","category":"classical-cipher","tags":["binary","esoteric"],"aliases":["cetacean","whale","Cetacean Cipher Decode"],"input":"text","output":"text","pair":{"title":"Cetacean","direction":"decode","with":"cetacean_encode"},"chunk":"classical"},{"id":"cetacean_encode","v":1,"name":"Cetacean Encode","summary":"Write text as whale song: each character as 16 E's and e's.","category":"classical-cipher","tags":["binary","esoteric"],"aliases":["cetacean","whale","Cetacean Cipher Encode"],"input":"text","output":"text","inverse":{"op":"cetacean_decode"},"pair":{"title":"Cetacean","direction":"encode","with":"cetacean_decode"},"chunk":"classical"},{"id":"chacha","v":1,"name":"ChaCha","summary":"Encrypt or decrypt with the ChaCha stream cipher: ChaCha20 (RFC 8439) or Bernstein's original, 8, 12 or 20 rounds.","category":"encryption","tags":["chacha","chacha20","stream-cipher","rfc8439","bernstein"],"aliases":["chacha20","chacha8","chacha12","chacha20 encrypt","chacha20 decrypt"],"input":"bytes","output":"bytes","inverse":{"op":"chacha"},"chunk":"encryption"},{"id":"change_ip_format","v":1,"name":"Change IP format","summary":"Convert IP addresses between dotted decimal, integer, hex, octal, binary, IPv6 and reverse-DNS forms.","category":"networking","tags":["ip","ipv4","ipv6","address","convert","obfuscation"],"aliases":["ip to decimal","ip to integer","ip to hex","decimal to ip","inet_aton","long ip"],"input":"text","output":"text","chunk":"networking"},{"id":"chi_square","v":1,"name":"Chi Square","summary":"Pearson's chi-squared statistic of the byte values against a uniform distribution: a randomness test.","category":"analysis","tags":["statistics","randomness","entropy","chi-squared"],"aliases":["chi-squared","chi squared","χ²","randomness test","ent"],"input":"bytes","output":"number","chunk":"arithmetic"},{"id":"chinese_remainder_theorem","v":1,"name":"Chinese Remainder Theorem","summary":"Find x from its remainders: solve x ≡ a₁ (mod m₁), x ≡ a₂ (mod m₂), … for any moduli.","category":"arithmetic","tags":["number-theory","modular","crt"],"aliases":["crt","chinese remainder","sunzi","system of congruences","remainders"],"input":"text","output":"text","chunk":"math"},{"id":"ciphersaber2_decrypt","v":1,"name":"CipherSaber2 Decrypt","summary":"Decrypt CipherSaber-2 (or CipherSaber-1) files: a 10-byte IV, then RC4 ciphertext.","category":"encryption","tags":["ciphersaber","rc4","arcfour","stream-cipher"],"aliases":["ciphersaber","ciphersaber-2","cs2","ciphersaber-1","cs1"],"input":"bytes","output":"bytes","pair":{"title":"CipherSaber2","direction":"decode","with":"ciphersaber2_encrypt"},"chunk":"encryption"},{"id":"ciphersaber2_encrypt","v":1,"name":"CipherSaber2 Encrypt","summary":"Encrypt with CipherSaber-2: RC4 keyed with a passphrase and a random 10-byte IV.","category":"encryption","tags":["ciphersaber","rc4","arcfour","stream-cipher"],"aliases":["ciphersaber","ciphersaber-2","cs2","ciphersaber-1","cs1"],"input":"bytes","output":"bytes","inverse":{"op":"ciphersaber2_decrypt"},"pair":{"title":"CipherSaber2","direction":"encode","with":"ciphersaber2_decrypt"},"chunk":"encryption"},{"id":"citrix_ctx1_decode","v":1,"name":"Citrix CTX1 Decode","summary":"Recover a password from Citrix's CTX1 obfuscation.","category":"encoding","tags":["citrix","ctx1","password","obfuscation"],"aliases":["ctx1","citrix password","ica password","storefront password"],"input":"text","output":"text","pair":{"title":"Citrix CTX1","direction":"decode","with":"citrix_ctx1_encode"},"chunk":"encoding"},{"id":"citrix_ctx1_encode","v":1,"name":"Citrix CTX1 Encode","summary":"Obfuscate a password the way Citrix does in CTX1-encoded config files and requests.","category":"encoding","tags":["citrix","ctx1","password","obfuscation"],"aliases":["ctx1","citrix password","ica password","storefront password"],"input":"text","output":"text","inverse":{"op":"citrix_ctx1_decode"},"pair":{"title":"Citrix CTX1","direction":"encode","with":"citrix_ctx1_decode"},"chunk":"encoding"},{"id":"cm_bifid_decode","v":1,"name":"CM Bifid Decode","summary":"Decrypt the Conjugated Matrix Bifid with its two key squares and period.","category":"classical-cipher","tags":["aca","key-square","fractionating"],"aliases":["cm bifid","conjugated matrix bifid","bifid"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"CM Bifid","direction":"decode","with":"cm_bifid_encode"},"chunk":"classical"},{"id":"cm_bifid_encode","v":1,"name":"CM Bifid Encode","summary":"Encrypt with the Conjugated Matrix Bifid: Bifid with a second square for the ciphertext letters.","category":"classical-cipher","tags":["aca","key-square","fractionating"],"aliases":["cm bifid","conjugated matrix bifid","bifid"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"CM Bifid","direction":"encode","with":"cm_bifid_decode"},"chunk":"classical"},{"id":"cmac","v":1,"name":"CMAC","summary":"Compute a CMAC: a message authentication code from AES or Triple DES (SP 800-38B, RFC 4493).","category":"hashing","tags":["mac","cmac","omac1","rfc4493","aes","3des"],"aliases":["aes-cmac","omac","omac1","cmac-aes","cmac-tdes","cipher-based mac"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"colossus","v":1,"name":"Colossus","summary":"Simulate Colossus's counting runs over Tunny ciphertext to find Lorenz wheel settings.","category":"classical-cipher","tags":["colossus","tunny","lorenz","cryptanalysis","bletchley","ww2"],"aliases":["colossus computer","tunny chi setting","1+2 break in","double delta"],"family":"machine","input":"bytes","output":"table","chunk":"machines"},{"id":"columnar_transposition_decode","v":1,"name":"Columnar Transposition Decode","summary":"Decrypt a columnar transposition: fill the columns in key order, then read the rows.","category":"classical-cipher","tags":["aca","transposition","columnar"],"aliases":["columnar transposition","complete columnar","incomplete columnar","transposition cipher","columnar decrypt"],"input":"text","output":"text","pair":{"title":"Columnar transposition","direction":"decode","with":"columnar_transposition_encode"},"chunk":"classical"},{"id":"columnar_transposition_encode","v":1,"name":"Columnar Transposition Encode","summary":"Encrypt by writing the text in rows under a key and reading the columns in key order.","category":"classical-cipher","tags":["aca","transposition","columnar"],"aliases":["columnar transposition","complete columnar","incomplete columnar","transposition cipher","columnar encrypt"],"input":"text","output":"text","pair":{"title":"Columnar transposition","direction":"encode","with":"columnar_transposition_decode"},"chunk":"classical"},{"id":"comment","v":1,"name":"Comment","summary":"A note in the spell for whoever reads it. It does nothing to the data.","category":"flow-control","tags":["flow-control","note","documentation","remark"],"aliases":["Comment","note","remark","annotation"],"input":"text","output":"text","flow":"comment","chunk":"flow"},{"id":"compare_ssdeep","v":1,"name":"Compare SSDEEP Hashes","summary":"Score how alike the inputs behind two ssdeep (CTPH) signatures are, from 0 to 100.","category":"hashing","tags":["fuzzy-hash","ctph","ssdeep","similarity","compare","forensics"],"aliases":["Compare CTPH hashes","Compare SSDEEP hashes","fuzzy hash compare","ssdeep compare","ssdeep match score"],"input":"text","output":"number","chunk":"hashing"},{"id":"concatenate_files","v":1,"name":"Concatenate files","summary":"Join the content of a set of files, in order, into one, with an optional separator.","category":"utility","tags":["files","archive","join","concatenate","cat"],"aliases":["cat","join files","merge files","combine files"],"input":"files","output":"bytes","chunk":"utility"},{"id":"conditional_jump","v":1,"name":"Conditional Jump","summary":"Go to a Label when the data matches a regular expression (or doesn't): loops that stop.","category":"flow-control","tags":["flow-control","goto","loop","while","if","regex"],"aliases":["Conditional Jump","if","while","loop until","jump if","goto if"],"input":"text","output":"text","flow":"conditional-jump","chunk":"flow"},{"id":"contain_image","v":1,"name":"Contain Image","summary":"Fit an image inside a box of a given size, keeping its aspect ratio, and fill the rest.","category":"image","tags":["image","pixels","resize","fit","letterbox"],"aliases":["fit image","letterbox","object-fit contain","pad image"],"input":"image","output":"image","chunk":"image"},{"id":"continued_fraction","v":1,"name":"Continued Fraction","summary":"Expand a number as a continued fraction [a₀; a₁, a₂, …], list its convergents, or evaluate one.","category":"arithmetic","tags":["number-theory","continued-fractions","approximation"],"aliases":["continued fractions","convergents","cf expansion","simple continued fraction","pell"],"input":"text","output":"text","chunk":"math"},{"id":"convert_area","v":1,"name":"Convert area","summary":"Convert an area between metric, imperial and US survey units, exactly.","category":"utility","tags":["units","convert","measurement","area","metric","imperial","land"],"aliases":["area converter","acres to hectares","square feet to square metres","sq ft"],"input":"decimal","output":"decimal","chunk":"conversion"},{"id":"convert_co_ordinate_format","v":1,"name":"Convert co-ordinate format","summary":"Convert map co-ordinates between decimal degrees, degrees-minutes-seconds, geohash, UTM, MGRS and the OS grid.","category":"utility","tags":["geo","gps","coordinates","latitude","longitude","utm","mgrs","geohash","osgb"],"aliases":["coordinates","lat long","dms","gps converter","geohash","utm","mgrs","os grid reference","british national grid"],"input":"text","output":"text","chunk":"conversion"},{"id":"convert_data_units","v":1,"name":"Convert data units","summary":"Convert between bits and bytes with SI (kB, MB) or IEC binary (KiB, MiB) prefixes, exactly.","category":"utility","tags":["units","convert","measurement","data","bytes","bits","storage","iec","binary-prefix"],"aliases":["bytes to kb","mb to mib","data size","file size","kibibyte","bandwidth"],"input":"decimal","output":"decimal","chunk":"conversion"},{"id":"convert_distance","v":1,"name":"Convert distance","summary":"Convert a length between metric, imperial, US survey, nautical and astronomical units, exactly.","category":"utility","tags":["units","convert","measurement","distance","length","metric","imperial"],"aliases":["length converter","metres to feet","miles to km","inches to cm","distance converter"],"input":"decimal","output":"decimal","chunk":"conversion"},{"id":"convert_image_format","v":1,"name":"Convert Image Format","summary":"Save an image as PNG, BMP, GIF or JPEG, with the format's options.","category":"image","tags":["image","convert","png","jpeg","gif","bmp","encode"],"aliases":["save as png","save as jpeg","to png","to jpeg","to gif","to bmp","image format"],"input":"image","output":"bytes","chunk":"image"},{"id":"convert_line_endings","v":1,"name":"Convert Line Endings","summary":"Make every line break LF (Unix), CRLF (Windows) or CR (classic Mac).","category":"utility","tags":["newline","line-endings","crlf","lf","eol"],"aliases":["dos2unix","unix2dos","line endings","newlines","EOL","CRLF to LF","LF to CRLF"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"convert_mass","v":1,"name":"Convert mass","summary":"Convert a mass between metric, avoirdupois and troy units, exactly.","category":"utility","tags":["units","convert","measurement","mass","weight","metric","imperial"],"aliases":["weight converter","kg to lb","pounds to kilograms","mass converter","ounces to grams"],"input":"decimal","output":"decimal","chunk":"conversion"},{"id":"convert_speed","v":1,"name":"Convert speed","summary":"Convert a speed between m/s, km/h, mph, knots, ft/s and the speed of light, exactly.","category":"utility","tags":["units","convert","measurement","speed","velocity","metric","imperial"],"aliases":["speed converter","km/h to mph","mph to kph","knots","velocity converter"],"input":"decimal","output":"decimal","chunk":"conversion"},{"id":"count_occurrences","v":1,"name":"Count Occurrences","summary":"Count how many times a piece of text, or a match of a regular expression, appears in the input.","category":"utility","tags":["count","search","occurrences","substring"],"aliases":["Count occurrences","count matches","substring count","grep -c","find count"],"input":"text","output":"number","chunk":"utility"},{"id":"cover_image","v":1,"name":"Cover Image","summary":"Scale an image to fill a box of a given size, keeping its aspect ratio, and crop the rest.","category":"image","tags":["image","pixels","resize","fill","crop"],"aliases":["fill image","object-fit cover","crop to fill","thumbnail"],"input":"image","output":"image","chunk":"image"},{"id":"crack_hash","v":1,"name":"Crack Hash","summary":"Look up unsalted password hashes (MD5, NTLM, SHA-1, LM…) in the RockYou wordlist, as CrackStation does.","category":"hashing","tags":["hash","password","crack","wordlist","dictionary"],"aliases":["CrackStation","hash lookup","rockyou","dictionary attack","wordlist attack","reverse hash","MD5 decrypt","hash decrypt","crack MD5","crack NTLM","password cracker"],"input":"text","output":"table","chunk":"hashing"},{"id":"crc","v":1,"name":"CRC","summary":"Compute a cyclic redundancy check: any CRC in the RevEng catalogue, or your own parameters.","category":"hashing","tags":["checksum","crc","error-detection"],"aliases":["CRC Checksum","crc32","crc-32","crc32c","crc16","crc-16","crc8","crc-8","crc64","crc-64","cksum","cyclic redundancy check"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"crop_image","v":1,"name":"Crop Image","summary":"Cut a rectangle out of an image, or trim a plain border automatically.","category":"image","tags":["image","pixels","crop","trim","autocrop"],"aliases":["trim image","autocrop","cut image"],"input":"image","output":"image","chunk":"image"},{"id":"css_beautify","v":1,"name":"CSS Beautify","summary":"Lay CSS out one declaration per line, indented by nesting, without changing any value.","category":"code","tags":["css","beautify","format","pretty-print","stylesheet"],"aliases":["css format","css pretty print","prettify css","unminify css","css formatter"],"input":"text","output":"text","chunk":"code"},{"id":"css_minify","v":1,"name":"CSS Minify","summary":"Remove the whitespace and comments CSS doesn't need, keeping every value exactly as written.","category":"code","tags":["css","minify","compress","stylesheet"],"aliases":["css compress","compress css","minify css","css uglify"],"input":"text","output":"text","chunk":"code"},{"id":"css_selector","v":1,"name":"CSS selector","summary":"Extract the elements of an HTML page that match a CSS selector, as HTML or as text.","category":"code","tags":["html","css","selector","query","extract","scrape"],"aliases":["css select","html query","query selector","queryselectorall","scrape html"],"input":"text","output":"text","chunk":"code"},{"id":"csv_to_json","v":1,"name":"CSV to JSON","summary":"Read CSV as JSON: an array of objects keyed by the header row, or an array of arrays.","category":"data-format","tags":["csv","json","spreadsheet","rfc4180"],"aliases":["csv","csv parse","csv to json","tsv to json","comma-separated values"],"input":"text","output":"json","pair":{"title":"CSV","direction":"decode","with":"json_to_csv"},"chunk":"data-format"},{"id":"datetime_delta","v":1,"name":"DateTime Delta","summary":"Add or subtract days, hours, minutes and seconds from a date.","category":"utility","tags":["time","date","add","subtract","duration","arithmetic"],"aliases":["add days","date math","date arithmetic","time delta","add time"],"input":"text","output":"text","chunk":"time"},{"id":"dechunk_http_response","v":1,"name":"Dechunk HTTP response","summary":"Decode an HTTP/1.1 chunked body (Transfer-Encoding: chunked) back into the bytes it carries.","category":"networking","tags":["http","chunked","transfer-encoding","dechunk","response","body"],"aliases":["chunked","chunked encoding","transfer-encoding chunked","unchunk"],"input":"bytes","output":"bytes","chunk":"networking"},{"id":"decode_netbios_name","v":1,"name":"Decode NetBIOS Name","summary":"Decode a NetBIOS name from RFC 1001's first-level encoding, 32 letters A–P, back to its bytes.","category":"networking","tags":["netbios","smb","nbns","rfc1001","windows"],"aliases":["netbios","nbns name","netbios decode","first level encoding"],"input":"bytes","output":"bytes","pair":{"title":"NetBIOS Name","direction":"decode","with":"encode_netbios_name"},"chunk":"networking"},{"id":"decode_text","v":1,"name":"Decode Text","summary":"Read bytes as text in a chosen character encoding, such as UTF-16 or Windows-1252.","category":"encoding","tags":["charset","encoding","utf-8","utf-16","utf-32","latin-1","windows-1252","ascii","bom"],"aliases":["charset","code page","iconv"],"input":"bytes","output":"text","pair":{"title":"Text encoding","direction":"decode","with":"encode_text"},"chunk":"encoding"},{"id":"defang_ip_addresses","v":1,"name":"Defang IP Addresses","summary":"Make IPv4 and IPv6 addresses in text safe to share: 192[.]0[.]2[.]1 and 2001[:]db8[:][:]1.","category":"networking","tags":["defang","ioc","ip","ipv4","ipv6","threat-intel"],"aliases":["defang ip","neuter ip","safe ip"],"input":"text","output":"text","pair":{"title":"IP Address Defanging","direction":"encode","with":"fang_ip_addresses"},"chunk":"networking"},{"id":"defang_url","v":1,"name":"Defang URL","summary":"Make URLs and domains safe to share: hxxps[://]example[.]com can't be clicked or resolved.","category":"networking","tags":["defang","ioc","url","threat-intel","safety"],"aliases":["defang","hxxp","neuter url","sanitize url","safe url"],"input":"text","output":"text","pair":{"title":"URL Defanging","direction":"encode","with":"fang_url"},"chunk":"networking"},{"id":"derive_evp_key","v":1,"name":"Derive EVP key","summary":"Derive a key and IV from a password as OpenSSL's EVP_BytesToKey does (openssl enc without -pbkdf2).","category":"encryption","tags":["kdf","evp","openssl","evp-bytestokey","password"],"aliases":["evp_bytestokey","evpkdf","openssl kdf","openssl enc key","bytes to key"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"derive_hkdf_key","v":1,"name":"Derive HKDF key","summary":"Derive keys with HKDF (RFC 5869): HMAC-based extract-then-expand, or either step alone.","category":"encryption","tags":["kdf","hkdf","rfc5869","hmac"],"aliases":["hkdf","hkdf-sha256","hkdf-expand","hkdf-extract","rfc 5869"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"derive_pbkdf2_key","v":1,"name":"Derive PBKDF2 key","summary":"Derive a key from a password with PBKDF2 (RFC 8018): HMAC over a chosen hash, iterated.","category":"encryption","tags":["kdf","pbkdf2","pkcs5","rfc8018","password","hmac"],"aliases":["pbkdf2","pkcs5","pkcs #5","password-based key derivation","pbkdf2-hmac-sha256"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"des_decrypt","v":1,"name":"DES Decrypt","summary":"Decrypt single DES in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["des","block-cipher","fips46","cbc"],"aliases":["des","data encryption standard","des-cbc","des-ecb","des decrypt"],"input":"bytes","output":"bytes","pair":{"title":"DES","direction":"decode","with":"des_encrypt"},"chunk":"encryption"},{"id":"des_encrypt","v":1,"name":"DES Encrypt","summary":"Encrypt with single DES in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["des","block-cipher","fips46","cbc"],"aliases":["des","data encryption standard","des-cbc","des-ecb","des encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"des_decrypt"},"pair":{"title":"DES","direction":"encode","with":"des_decrypt"},"chunk":"encryption"},{"id":"detect_file_type","v":1,"name":"Detect File Type","summary":"Name the file format of the input from its signature (magic bytes), with MIME type and extension.","category":"analysis","tags":["magic","file-type","signature","magic-bytes","mime","forensics","libmagic"],"aliases":["file type","magic bytes","file signature","identify file","what file is this","file command"],"input":"bytes","output":"table","chunk":"forensics"},{"id":"detect_line_endings","v":1,"name":"Detect Line Endings","summary":"Count the LF, CRLF and CR line breaks and say which style the input uses.","category":"utility","tags":["newline","line-endings","crlf","lf","eol","detect"],"aliases":["line endings","newline style","EOL","CRLF or LF"],"input":"bytes","output":"json","chunk":"utility"},{"id":"diff","v":1,"name":"Diff","summary":"Compare two samples and show what changed, as a unified diff with changes marked.","category":"utility","tags":["diff","compare","patch","text"],"aliases":["compare","difference","unified diff","diff -u","changes","patch"],"input":"text","output":"marked","chunk":"utility"},{"id":"disassemble_arm","v":1,"name":"Disassemble ARM","summary":"Disassemble ARM machine code: A32 (ARM), T32 (Thumb) or A64 (AArch64), little- or big-endian.","category":"code","tags":["arm","aarch64","arm64","thumb","disassemble","assembly","shellcode","reverse-engineering"],"aliases":["arm disassembler","arm64 disassembler","aarch64 disassembler","thumb disassembler","objdump arm"],"input":"bytes","output":"text","chunk":"code"},{"id":"disassemble_x86","v":1,"name":"Disassemble x86","summary":"Disassemble 16-, 32- or 64-bit x86 machine code into Intel, AT&T or MASM assembly.","category":"code","tags":["x86","x64","amd64","disassemble","assembly","shellcode","reverse-engineering"],"aliases":["disassembler","x86 disassembler","x64 disassembler","objdump","shellcode disassembler","asm"],"input":"bytes","output":"text","chunk":"code"},{"id":"discrete_logarithm","v":1,"name":"Discrete Logarithm","summary":"Find x with gˣ ≡ h (mod n), by Pohlig–Hellman and baby-step giant-step.","category":"arithmetic","tags":["number-theory","modular","discrete-log","diffie-hellman"],"aliases":["dlog","discrete log","bsgs","baby step giant step","pohlig hellman","discret logarithm"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"dither_image","v":1,"name":"Dither Image","summary":"Reduce an image to black and white pixels, by Floyd–Steinberg error diffusion or a Bayer matrix.","category":"image","tags":["image","pixels","dither","black-and-white","halftone"],"aliases":["floyd-steinberg","error diffusion","bayer dither","1-bit","monochrome","halftone"],"input":"image","output":"image","chunk":"image"},{"id":"divide","v":1,"name":"Divide","summary":"Divide the first of a list of numbers by the rest, to a chosen number of decimal places.","category":"arithmetic","tags":["arithmetic","divide","quotient"],"aliases":["division","quotient","over"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"divisors","v":1,"name":"Divisors","summary":"List every positive divisor of an integer, in ascending order.","category":"arithmetic","tags":["number-theory","divisors"],"aliases":["divisors of a number","factors of a number","list divisors","all factors"],"input":"bigint","output":"text","chunk":"math"},{"id":"drop_bytes","v":1,"name":"Drop Bytes","summary":"Remove a range of bytes, given by its start offset and length; keep the rest.","category":"utility","tags":["bytes","slice","remove","cut"],"aliases":["Drop bytes","remove bytes","skip bytes","cut bytes","delete bytes"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"drop_nth_bytes","v":1,"name":"Drop Nth Bytes","summary":"Remove every nth byte, from a starting offset, and keep the rest.","category":"utility","tags":["bytes","interleave","stride","remove"],"aliases":["Drop nth bytes","remove every nth byte","stride"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"ecdsa_sign","v":1,"name":"ECDSA Sign","summary":"Sign a message with an EC private key (ECDSA), with RFC 6979's deterministic nonces or random ones.","category":"encryption","tags":["ecdsa","ecc","signature","rfc6979","p-256","secp256k1","public-key"],"aliases":["ecdsa","ec signature","sign with ec key","deterministic ecdsa","openssl dgst -sign","secp256k1 sign"],"input":"bytes","output":"bytes","chunk":"pki"},{"id":"ecdsa_signature_conversion","v":1,"name":"ECDSA Signature Conversion","summary":"Convert an ECDSA signature between DER, raw r ‖ s (P1363), JWS base64url and JSON.","category":"encryption","tags":["ecdsa","signature","der","p1363","jws","convert"],"aliases":["der to p1363","p1363 to der","ecdsa der to raw","r s signature","jws signature"],"input":"bytes","output":"bytes","chunk":"pki"},{"id":"ecdsa_verify","v":1,"name":"ECDSA Verify","summary":"Check an ECDSA signature on a message with an EC public key.","category":"encryption","tags":["ecdsa","ecc","signature","verify","p-256","secp256k1","public-key"],"aliases":["ecdsa","check ecdsa signature","verify ec signature","openssl dgst -verify"],"input":"bytes","output":"text","chunk":"pki"},{"id":"elf_info","v":1,"name":"ELF Info","summary":"Read an ELF executable's headers, program headers, sections, symbols, dynamic entries and notes.","category":"analysis","tags":["elf","executable","linux","readelf","binary","forensics","reverse-engineering"],"aliases":["readelf","elf header","parse elf","elf sections","elf symbols","objdump"],"input":"bytes","output":"json","chunk":"forensics"},{"id":"encode_netbios_name","v":1,"name":"Encode NetBIOS Name","summary":"Encode a NetBIOS name with RFC 1001's first-level encoding: each half-byte as a letter A–P.","category":"networking","tags":["netbios","smb","nbns","rfc1001","windows"],"aliases":["netbios","nbns name","netbios encode","first level encoding"],"input":"bytes","output":"bytes","pair":{"title":"NetBIOS Name","direction":"encode","with":"decode_netbios_name"},"chunk":"networking"},{"id":"encode_text","v":1,"name":"Encode Text","summary":"Turn text into bytes in a chosen character encoding, such as UTF-16 or Windows-1252.","category":"encoding","tags":["charset","encoding","utf-8","utf-16","utf-32","latin-1","windows-1252","ascii","bom"],"aliases":["charset","code page","iconv"],"input":"text","output":"bytes","inverse":{"op":"decode_text"},"pair":{"title":"Text encoding","direction":"encode","with":"decode_text"},"chunk":"encoding"},{"id":"enigma","v":1,"name":"Enigma","summary":"Encrypt or decrypt with the German Enigma I, M3 or M4 rotor machine.","category":"classical-cipher","tags":["enigma","rotor-machine","bletchley","ww2"],"aliases":["enigma machine","enigma i","enigma m3","enigma m4","wehrmacht enigma","kriegsmarine enigma"],"family":"machine","input":"bytes","output":"bytes","chunk":"machines"},{"id":"entropy","v":1,"name":"Entropy","summary":"Measure the Shannon entropy of the bytes, from 0 to 8 bits per byte.","category":"analysis","tags":["entropy","statistics","randomness","shannon"],"aliases":["Entropy","shannon entropy","randomness"],"input":"bytes","output":"number","chunk":"analysis"},{"id":"entropy_chart","v":1,"name":"Entropy chart","summary":"Chart the Shannon entropy of each block of the input, or how often each byte value occurs.","category":"analysis","tags":["chart","entropy","visualization","randomness","shannon"],"aliases":["entropy graph","entropy plot","bintropy","byte histogram"],"input":"bytes","output":"json","chunk":"charts"},{"id":"escape_string","v":1,"name":"Escape String","summary":"Write text as the inside of a string literal, escaping quotes, backslashes and control characters.","category":"utility","tags":["escape","string","javascript","json","c","python","literal"],"aliases":["Escape string","string escape","backslash escape","addslashes","quote string"],"input":"text","output":"text","inverse":{"op":"unescape_string"},"pair":{"title":"String escapes","direction":"encode","with":"unescape_string"},"chunk":"utility"},{"id":"escape_unicode","v":1,"name":"Escape Unicode","summary":"Write characters as \\u escapes, as in JavaScript, JSON or Python source.","category":"encoding","tags":["unicode","escape","javascript","json","python"],"aliases":["unicode escape","\\u","escape unicode characters"],"input":"text","output":"text","inverse":{"op":"unescape_unicode"},"pair":{"title":"Unicode escapes","direction":"encode","with":"unescape_unicode"},"chunk":"encoding"},{"id":"euler_totient","v":1,"name":"Euler's Totient","summary":"φ(n): how many of 1 … n are coprime to n, as RSA's φ = (p − 1)(q − 1).","category":"arithmetic","tags":["number-theory","totient","rsa"],"aliases":["phi","totient","euler phi","euler's phi function","φ"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"expand_alphabet_range","v":1,"name":"Expand Alphabet Range","summary":"Write out character ranges such as a-z0-9 in full: abcdefghijklmnopqrstuvwxyz0123456789.","category":"utility","tags":["alphabet","range","characters","tr","charset"],"aliases":["Expand alphabet range","character range","tr range","a-z","charset"],"input":"text","output":"text","chunk":"utility"},{"id":"extended_gcd","v":1,"name":"Extended GCD","summary":"The greatest common divisor of two integers, with Bézout coefficients x and y: a·x + b·y = gcd.","category":"arithmetic","tags":["number-theory","gcd","bezout"],"aliases":["egcd","xgcd","gcd","greatest common divisor","bezout","bézout coefficients"],"input":"bigint","output":"text","chunk":"arithmetic"},{"id":"extract_audio_metadata","v":1,"name":"Extract Audio Metadata","summary":"Read an audio file's format, duration and tags: MP3, FLAC, Ogg Vorbis and Opus, MP4/M4A, WAV and AIFF.","category":"analysis","tags":["audio","metadata","tags","forensics","flac","ogg","mp4","wav"],"aliases":["audio tags","music metadata","duration","vorbis comment","m4a tags","song info"],"input":"bytes","output":"json","chunk":"media"},{"id":"extract_dates","v":1,"name":"Extract Dates","summary":"List the calendar dates in text: 2024-01-31, 31/01/2024, 01.31.2024 and similar.","category":"utility","tags":["date","extract","time","forensics"],"aliases":["Extract dates","find dates","date extractor"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_domains","v":1,"name":"Extract Domains","summary":"List the domain names in text: example.com, mail.example.co.uk and the like.","category":"utility","tags":["domain","dns","hostname","extract","osint"],"aliases":["Extract domains","find domains","hostnames","domain extractor","fqdn"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_email_addresses","v":1,"name":"Extract Email Addresses","summary":"List the email addresses in text: name@example.com and the like.","category":"utility","tags":["email","extract","address","osint","forensics"],"aliases":["Extract email addresses","find emails","grep email","email extractor"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_exif","v":1,"name":"Extract EXIF","summary":"Read the EXIF metadata of a JPEG, PNG, WebP or TIFF file: camera, dates, GPS position and more.","category":"image","tags":["image","exif","metadata","gps","forensics","jpeg","tiff"],"aliases":["exif","metadata","exif data","image metadata","exiftool","gps location"],"input":"bytes","output":"json","chunk":"image"},{"id":"extract_file_paths","v":1,"name":"Extract File Paths","summary":"List the Windows and UNIX file paths in text: C:\\Windows\\win.ini, /etc/passwd, ~/notes.txt.","category":"utility","tags":["path","file","windows","unix","extract","forensics"],"aliases":["Extract file paths","find paths","file path extractor","grep paths"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_files","v":1,"name":"Extract Files","summary":"Carve out the files hidden inside the input, each cut to the length its format gives.","category":"analysis","tags":["magic","carving","binwalk","foremost","embedded","forensics","extract"],"aliases":["carve files","file carving","binwalk extract","foremost","extract embedded files"],"input":"bytes","output":"files","chunk":"forensics"},{"id":"extract_hashes","v":1,"name":"Extract Hashes","summary":"List the hex strings of a hash's length in text: MD5, SHA-1, SHA-256 and other digests.","category":"utility","tags":["hash","digest","hex","extract","forensics"],"aliases":["Extract hashes","find hashes","md5 extractor","hash extractor"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_id3","v":1,"name":"Extract ID3","summary":"Read an MP3's ID3 tags (v1, v1.1, v2.2, v2.3 and v2.4) as a tree: title, artist, pictures and every frame.","category":"analysis","tags":["audio","mp3","id3","metadata","forensics"],"aliases":["ID3","mp3 tags","id3v2","id3v1","song info"],"input":"bytes","output":"json","chunk":"media"},{"id":"extract_ip_addresses","v":1,"name":"Extract IP Addresses","summary":"List the IPv4 and IPv6 addresses in text, optionally without private and other local ones.","category":"utility","tags":["ip","ipv4","ipv6","extract","network","forensics"],"aliases":["Extract IP addresses","find ip addresses","grep ip","ip extractor"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_lsb","v":1,"name":"Extract LSB","summary":"Read the hidden bits of an image: one bit from chosen channels of each pixel, packed into bytes.","category":"image","tags":["image","pixels","lsb","steganography","forensics","bits"],"aliases":["lsb","zsteg","least significant bit","stego"],"input":"image","output":"bytes","chunk":"image"},{"id":"extract_mac_addresses","v":1,"name":"Extract MAC Addresses","summary":"List the 48-bit MAC addresses in text: 00:1a:2b:3c:4d:5e, 00-1A-2B-3C-4D-5E or 001a.2b3c.4d5e.","category":"utility","tags":["mac","ethernet","eui-48","extract","network","forensics"],"aliases":["Extract MAC addresses","find mac addresses","hardware address","eui-48"],"input":"text","output":"text","chunk":"utility"},{"id":"extract_pdf_text","v":1,"name":"Extract PDF Text","summary":"Get the text of a PDF's pages, as pdf.js reads it from the page contents.","category":"data-format","tags":["pdf","text","extract","document","pdftotext"],"aliases":["pdf to text","pdftotext","pdf text","read pdf"],"input":"bytes","output":"text","chunk":"pdf"},{"id":"extract_rgba","v":1,"name":"Extract RGBA","summary":"List every pixel's red, green, blue and alpha values as decimal numbers.","category":"image","tags":["image","pixels","rgba","values","steganography","forensics"],"aliases":["pixel values","rgb values","image to numbers"],"input":"image","output":"text","chunk":"image"},{"id":"extract_urls","v":1,"name":"Extract URLs","summary":"List the URLs in text: anything with a scheme and ://, such as https://example.com/path.","category":"utility","tags":["url","uri","link","extract","osint","forensics"],"aliases":["Extract URLs","find urls","find links","extract links","grep url"],"input":"text","output":"text","chunk":"utility"},{"id":"factorize","v":1,"name":"Factorize","summary":"Find an integer's prime factors, with the method that found each: trial division, rho, p − 1, ECM and more.","category":"arithmetic","tags":["number-theory","factorization","primes","rsa"],"aliases":["factor","factorise","prime factors","prime factorization","integer factorization","pollard rho","ecm","fermat factorization","factordb"],"input":"bigint","output":"table","chunk":"math"},{"id":"fang_ip_addresses","v":1,"name":"Fang IP Addresses","summary":"Restore defanged IPv4 and IPv6 addresses, such as 192[.]0[.]2[.]1 or 10 dot 0 dot 0 dot 1, to usable ones.","category":"networking","tags":["fang","refang","ioc","ip","ipv4","ipv6","threat-intel"],"aliases":["refang ip","unfang ip","undefang ip","restore ip"],"input":"text","output":"text","pair":{"title":"IP Address Defanging","direction":"decode","with":"defang_ip_addresses"},"chunk":"networking"},{"id":"fang_url","v":1,"name":"Fang URL","summary":"Restore defanged URLs and addresses: hxxps[://]example[.]com back to https://example.com.","category":"networking","tags":["fang","refang","ioc","url","threat-intel"],"aliases":["refang","unfang","undefang","restore url","hxxp"],"input":"text","output":"text","pair":{"title":"URL Defanging","direction":"decode","with":"defang_url"},"chunk":"networking"},{"id":"fernet_decrypt","v":1,"name":"Fernet Decrypt","summary":"Verify and decrypt a Fernet token, optionally rejecting it once it's older than a TTL.","category":"encryption","tags":["fernet","aes","hmac","token","python","cryptography"],"aliases":["fernet","fernet token","python fernet","fernet decrypt"],"input":"text","output":"bytes","pair":{"title":"Fernet","direction":"decode","with":"fernet_encrypt"},"chunk":"encryption"},{"id":"fernet_encrypt","v":1,"name":"Fernet Encrypt","summary":"Encrypt into a Fernet token (AES-128-CBC with HMAC-SHA256), as Python's cryptography does.","category":"encryption","tags":["fernet","aes","hmac","token","python","cryptography"],"aliases":["fernet","fernet token","python fernet","fernet encrypt"],"input":"bytes","output":"text","inverse":{"op":"fernet_decrypt"},"pair":{"title":"Fernet","direction":"encode","with":"fernet_decrypt"},"chunk":"encryption"},{"id":"file_tree","v":1,"name":"File Tree","summary":"Draw a list of file paths as a tree, as the tree command does.","category":"utility","tags":["files","tree","paths","directory"],"aliases":["tree","directory tree","folder tree","path tree"],"input":"files","output":"text","chunk":"utility"},{"id":"filter","v":1,"name":"Filter","summary":"Keep only the lines (or other items) that match a regular expression, or only those that don't.","category":"utility","tags":["regex","filter","grep","lines","search"],"aliases":["Filter","grep","grep -v","filter lines","keep lines","remove lines"],"input":"text","output":"text","chunk":"utility"},{"id":"find_replace","v":1,"name":"Find / Replace","summary":"Replace matches of a regular expression or of plain text, with $1-style references to groups.","category":"utility","tags":["regex","replace","search","sed","substitute"],"aliases":["Find / Replace","find and replace","search and replace","regex replace","sed","s///"],"input":"text","output":"text","chunk":"utility"},{"id":"flask_session_decode","v":1,"name":"Flask Session Decode","summary":"Decode a Flask session cookie's JSON and timestamp, without the secret key. Doesn't check the signature.","category":"encryption","tags":["flask","session","cookie","itsdangerous","python","web","decode"],"aliases":["flask cookie","flask-unsign","itsdangerous","decode flask session","session cookie"],"input":"text","output":"json","chunk":"pki"},{"id":"flask_session_sign","v":1,"name":"Flask Session Sign","summary":"Sign JSON as a Flask session cookie with the app's secret key, as itsdangerous does.","category":"encryption","tags":["flask","session","cookie","itsdangerous","python","web","sign","hmac"],"aliases":["flask cookie","flask-unsign --sign","forge flask session","itsdangerous"],"input":"json","output":"text","chunk":"pki"},{"id":"flask_session_verify","v":1,"name":"Flask Session Verify","summary":"Check a Flask session cookie's signature with the app's secret key, and its age.","category":"encryption","tags":["flask","session","cookie","itsdangerous","python","web","verify","hmac"],"aliases":["flask cookie","flask-unsign","verify flask session","itsdangerous"],"input":"text","output":"json","chunk":"pki"},{"id":"fletcher","v":1,"name":"Fletcher","summary":"Compute Fletcher's checksum: Fletcher-8, -16, -32 or -64.","category":"hashing","tags":["checksum","fletcher","rfc1146"],"aliases":["Fletcher-8 Checksum","Fletcher-16 Checksum","Fletcher-32 Checksum","Fletcher-64 Checksum","fletcher8","fletcher16","fletcher32","fletcher64"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"flip_image","v":1,"name":"Flip Image","summary":"Mirror an image left to right, or turn it upside down.","category":"image","tags":["image","pixels","flip","mirror"],"aliases":["mirror image","flip horizontal","flip vertical"],"input":"image","output":"image","inverse":{"op":"flip_image"},"chunk":"image"},{"id":"fork","v":1,"name":"Fork","summary":"Split the data and run the steps after it on each piece separately, up to a Merge.","category":"flow-control","tags":["flow-control","split","each","map","lines","batch"],"aliases":["Fork","for each","each line","map","split and run","per line"],"input":"text","output":"text","flow":"fork","chunk":"flow"},{"id":"format_mac_addresses","v":1,"name":"Format MAC addresses","summary":"Rewrite MAC addresses (EUI-48 or EUI-64) with colons, dashes, Cisco dots, or as an IPv6 interface ID.","category":"networking","tags":["mac","eui-48","eui-64","ethernet","address","slaac"],"aliases":["mac address","eui-64","hardware address","cisco mac","mac to ipv6"],"input":"text","output":"text","chunk":"networking"},{"id":"four_square_decode","v":1,"name":"Four-square Decode","summary":"Decrypt Four-square pairs: find them in the keyed squares and read the plain squares' corners.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["four-square","four square","foursquare","four-square cipher","delastelle"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Four-square","direction":"decode","with":"four_square_encode"},"chunk":"classical"},{"id":"four_square_encode","v":1,"name":"Four-square Encode","summary":"Encrypt pairs of letters with Delastelle's Four-square: two plain squares and two keyed ones.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["four-square","four square","foursquare","four-square cipher","delastelle"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Four-square","direction":"encode","with":"four_square_decode"},"chunk":"classical"},{"id":"frequency_distribution","v":1,"name":"Frequency Distribution","summary":"Count how often each byte value occurs, as a table of counts and percentages.","category":"analysis","tags":["frequency","statistics","histogram","cryptanalysis"],"aliases":["Frequency distribution","frequency analysis","byte histogram","letter frequency"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"from_aaencode","v":1,"name":"From AAEncode","summary":"Decode AAEncode, Yosuke Hasegawa's JavaScript written in Japanese emoticons (ﾟωﾟﾉ), back to its source.","category":"code","tags":["aaencode","javascript","obfuscation","deobfuscation","ctf"],"aliases":["aaencode","aadecode","aaencode decode","aa encode","ﾟωﾟﾉ","emoticon javascript"],"family":"esolang","input":"text","output":"text","chunk":"esolang"},{"id":"from_base","v":1,"name":"From Base","summary":"Read a whole number written in any base from 2 to 36.","category":"encoding","tags":["radix","base-n","number"],"aliases":["radix","base n","base36","number base","convert base"],"input":"text","output":"bigint","pair":{"title":"Base","direction":"decode","with":"to_base"},"chunk":"encoding"},{"id":"from_base100","v":1,"name":"From Base100","summary":"Decode Base100 emoji (Base💯) back to bytes.","category":"encoding","tags":["base100","emoji"],"aliases":["base100 decode","base💯","emoji decode"],"input":"text","output":"bytes","pair":{"title":"Base100","direction":"decode","with":"to_base100"},"chunk":"encoding"},{"id":"from_base32","v":1,"name":"From Base32","summary":"Decode Base32 text to bytes.","category":"encoding","tags":["base32","rfc4648"],"aliases":["b32","base32 decode"],"input":"text","output":"bytes","pair":{"title":"Base32","direction":"decode","with":"to_base32"},"chunk":"encoding"},{"id":"from_base32768","v":1,"name":"From Base32768","summary":"Decode Base32768 text back to bytes, 15 bits a character.","category":"encoding","tags":["base32768","unicode","utf-16"],"aliases":["base32768 decode","b32768"],"input":"text","output":"bytes","pair":{"title":"Base32768","direction":"decode","with":"to_base32768"},"chunk":"encoding"},{"id":"from_base45","v":1,"name":"From Base45","summary":"Decode Base45 text to bytes.","category":"encoding","tags":["base45","qr"],"aliases":["base45 decode"],"input":"text","output":"bytes","pair":{"title":"Base45","direction":"decode","with":"to_base45"},"chunk":"encoding"},{"id":"from_base58","v":1,"name":"From Base58","summary":"Decode Base58 text to bytes.","category":"encoding","tags":["base58","bitcoin"],"aliases":["base58 decode"],"input":"text","output":"bytes","pair":{"title":"Base58","direction":"decode","with":"to_base58"},"chunk":"encoding"},{"id":"from_base58check","v":1,"name":"From Base58Check","summary":"Decode Base58Check text to bytes, verifying its 4-byte checksum.","category":"encoding","tags":["base58","base58check","bitcoin","checksum"],"aliases":["base58check decode","bitcoin address","wif"],"input":"text","output":"bytes","pair":{"title":"Base58Check","direction":"decode","with":"to_base58check"},"chunk":"encoding"},{"id":"from_base62","v":1,"name":"From Base62","summary":"Decode Base62 text to bytes.","category":"encoding","tags":["base62"],"aliases":["base62 decode","b62"],"input":"text","output":"bytes","pair":{"title":"Base62","direction":"decode","with":"to_base62"},"chunk":"encoding"},{"id":"from_base64","v":1,"name":"From Base64","summary":"Decode Base64 text to bytes.","category":"encoding","tags":["base64","rfc4648"],"aliases":["b64","base64 decode"],"input":"text","output":"bytes","pair":{"title":"Base64","direction":"decode","with":"to_base64"},"chunk":"encoding"},{"id":"from_base65536","v":1,"name":"From Base65536","summary":"Decode Base65536 text back to bytes, two bytes a character.","category":"encoding","tags":["base65536","unicode"],"aliases":["base65536 decode","b65536"],"input":"text","output":"bytes","pair":{"title":"Base65536","direction":"decode","with":"to_base65536"},"chunk":"encoding"},{"id":"from_base85","v":1,"name":"From Base85","summary":"Decode Base85 text to bytes: Ascii85, Z85 or the RFC 1924 alphabet.","category":"encoding","tags":["base85","ascii85","z85"],"aliases":["ascii85","z85","b85"],"input":"text","output":"bytes","pair":{"title":"Base85","direction":"decode","with":"to_base85"},"chunk":"encoding"},{"id":"from_base91","v":1,"name":"From Base91","summary":"Decode basE91 text to bytes.","category":"encoding","tags":["base91"],"aliases":["base91 decode","b91","basE91"],"input":"text","output":"bytes","pair":{"title":"Base91","direction":"decode","with":"to_base91"},"chunk":"encoding"},{"id":"from_base92","v":1,"name":"From Base92","summary":"Decode Base92 text to bytes.","category":"encoding","tags":["base92"],"aliases":["base92 decode","b92"],"input":"text","output":"bytes","pair":{"title":"Base92","direction":"decode","with":"to_base92"},"chunk":"encoding"},{"id":"from_baudot","v":1,"name":"From Baudot","summary":"Read five-unit teleprinter codes (ITA2, US-TTY or ITA1) back as text, following the shifts.","category":"encoding","tags":["telegraph","teleprinter","ita2","itu"],"aliases":["baudot","baudot code","ita2","ita1","murray code","us-tty","teletype","rtty","telex"],"family":"telegraph","input":"text","output":"text","pair":{"title":"Baudot","direction":"decode","with":"to_baudot"},"chunk":"classical"},{"id":"from_bcd","v":1,"name":"From BCD","summary":"Decode binary-coded decimal bytes, packed or unpacked, to a whole number.","category":"encoding","tags":["bcd","packed-decimal","number"],"aliases":["binary coded decimal","packed decimal","comp-3","8421","excess-3","aiken"],"input":"bytes","output":"bigint","pair":{"title":"BCD","direction":"decode","with":"to_bcd"},"chunk":"encoding"},{"id":"from_bech32","v":1,"name":"From Bech32","summary":"Decode a Bech32 or Bech32m string, such as a SegWit address, checking its checksum.","category":"encoding","tags":["bech32","bech32m","bitcoin","segwit","checksum"],"aliases":["bech32 decode","bech32m decode","segwit address","bip173","bip350","taproot address"],"input":"text","output":"bytes","pair":{"title":"Bech32","direction":"decode","with":"to_bech32"},"chunk":"encoding"},{"id":"from_binary","v":1,"name":"From Binary","summary":"Read binary digits as bytes, with or without separators.","category":"encoding","tags":["binary","bits"],"aliases":["bits","base2"],"input":"text","output":"bytes","pair":{"title":"Binary","direction":"decode","with":"to_binary"},"chunk":"encoding"},{"id":"from_binhex","v":1,"name":"From BinHex","summary":"Decode a BinHex 4.0 (.hqx) file to its data fork or resource fork, checking its CRCs.","category":"encoding","tags":["binhex","hqx","macintosh","rfc1741"],"aliases":["binhex decode","hqx","binhex 4.0","mac-binhex40","hexbin"],"input":"text","output":"bytes","pair":{"title":"BinHex","direction":"decode","with":"to_binhex"},"chunk":"encoding"},{"id":"from_braille","v":1,"name":"From Braille","summary":"Read six-dot Unicode Braille cells as text, using the Braille ASCII mapping.","category":"encoding","tags":["braille","unicode","brf"],"aliases":["braille decode","braille ascii","brf","six dot"],"input":"text","output":"text","pair":{"title":"Braille","direction":"decode","with":"to_braille"},"chunk":"encoding"},{"id":"from_case_insensitive_regex","v":1,"name":"From Case Insensitive Regex","summary":"Simplify [aA][bB][cC]-style regular expressions back to abc, for use with the i flag.","category":"utility","tags":["regex","case","pattern"],"aliases":["From Case Insensitive Regex","simplify regex case"],"input":"text","output":"text","pair":{"title":"Case-insensitive regex","direction":"decode","with":"to_case_insensitive_regex"},"chunk":"utility"},{"id":"from_charcode","v":1,"name":"From Charcode","summary":"Read numbers as Unicode code points.","category":"encoding","tags":["unicode","code-point"],"aliases":["char code","code points","chr"],"input":"text","output":"text","pair":{"title":"Charcode","direction":"decode","with":"to_charcode"},"chunk":"encoding"},{"id":"from_cobs","v":1,"name":"From COBS","summary":"Decode one COBS frame back to the original bytes.","category":"encoding","tags":["cobs","framing","byte-stuffing","serial"],"aliases":["cobs decode","byte stuffing","consistent overhead byte stuffing"],"input":"bytes","output":"bytes","pair":{"title":"COBS","direction":"decode","with":"to_cobs"},"chunk":"encoding"},{"id":"from_crockford_base32","v":1,"name":"From Crockford Base32","summary":"Decode Douglas Crockford's Base32 to bytes, checking its check symbol if there is one.","category":"encoding","tags":["base32","crockford","ulid"],"aliases":["crockford base32 decode","crockford32","base32 crockford","ulid"],"input":"text","output":"bytes","pair":{"title":"Crockford Base32","direction":"decode","with":"to_crockford_base32"},"chunk":"encoding"},{"id":"from_decimal","v":1,"name":"From Decimal","summary":"Read decimal numbers as bytes.","category":"encoding","tags":["decimal","base10"],"aliases":["base10","numbers to bytes"],"input":"text","output":"bytes","pair":{"title":"Decimal","direction":"decode","with":"to_decimal"},"chunk":"encoding"},{"id":"from_factorial_base","v":1,"name":"From Factorial Base","summary":"Read a number written in the factorial number system (factoradic): 3:4:1:0:1:0 = 463.","category":"encoding","tags":["numbers","numerals","factorial"],"aliases":["factoradic","factorial number system","cantor expansion","lehmer code","factorial base"],"input":"text","output":"bigint","pair":{"title":"Factorial Base","direction":"decode","with":"to_factorial_base"},"chunk":"math"},{"id":"from_float","v":1,"name":"From Float","summary":"Write numbers as IEEE 754 floating-point bytes, 4 or 8 bytes each.","category":"encoding","tags":["float","ieee-754","number"],"aliases":["ieee 754","float to bytes","double","single precision","binary32","binary64"],"input":"text","output":"bytes","pair":{"title":"Float","direction":"decode","with":"to_float"},"chunk":"encoding"},{"id":"from_gray_code","v":1,"name":"From Gray Code","summary":"Read a reflected binary Gray code (binary digits) back as a whole number: 111 is 5.","category":"encoding","tags":["gray-code","binary","number"],"aliases":["gray code","reflected binary","rbc","gray decode"],"input":"text","output":"bigint","pair":{"title":"Gray code","direction":"decode","with":"to_gray_code"},"chunk":"encoding"},{"id":"from_hex","v":1,"name":"From Hex","summary":"Decode hexadecimal text to bytes, with or without separators and prefixes.","category":"encoding","tags":["hex","base16","rfc4648"],"aliases":["base16","hex decode"],"input":"text","output":"bytes","pair":{"title":"Hex","direction":"decode","with":"to_hex"},"chunk":"encoding"},{"id":"from_hex_content","v":1,"name":"From Hex Content","summary":"Read a Snort content string, with |hex| between pipes, as bytes.","category":"encoding","tags":["snort","suricata","ids","hex"],"aliases":["snort content","suricata content","content match","pipe hex"],"input":"text","output":"bytes","pair":{"title":"Hex Content","direction":"decode","with":"to_hex_content"},"chunk":"encoding"},{"id":"from_hexdump","v":1,"name":"From Hexdump","summary":"Read the bytes back out of a hexdump -C or xxd dump.","category":"encoding","tags":["hexdump","xxd","hex","dump"],"aliases":["hexdump -C","xxd -r","hex dump"],"input":"text","output":"bytes","pair":{"title":"Hexdump","direction":"decode","with":"to_hexdump"},"chunk":"encoding"},{"id":"from_hodor","v":1,"name":"From Hodor","summary":"Turn Hodor (hodor-lang) back into the JavaScript it spells.","category":"code","tags":["hodor","esolang","javascript","substitution","ctf"],"aliases":["hodor","hodor language","hodor decode","hodor-lang"],"family":"esolang","input":"text","output":"text","pair":{"title":"Hodor","direction":"decode","with":"to_hodor"},"chunk":"esolang"},{"id":"from_html_entity","v":1,"name":"From HTML Entity","summary":"Replace HTML character references such as &lt; and &#233; with their characters.","category":"encoding","tags":["html","entity","escape","web"],"aliases":["html decode","html unescape","html entities","character reference","unescape html"],"input":"text","output":"text","pair":{"title":"HTML Entity","direction":"decode","with":"to_html_entity"},"chunk":"encoding"},{"id":"from_integer","v":1,"name":"From Integer","summary":"Write a big integer as bytes, as RSA and CTF challenges turn a number back into text.","category":"encoding","tags":["integer","bigint","rsa","number"],"aliases":["text-integer conversion","long_to_bytes","int.to_bytes","number to text","integer to bytes"],"input":"bigint","output":"bytes","pair":{"title":"Integer","direction":"decode","with":"to_integer"},"chunk":"encoding"},{"id":"from_jjencode","v":1,"name":"From JJEncode","summary":"Decode JJEncode, Yosuke Hasegawa's JavaScript written with $, _ and a few symbols, back to its source.","category":"code","tags":["jjencode","javascript","obfuscation","deobfuscation","ctf"],"aliases":["jjencode","jjdecode","jjencode decode","jj encode"],"family":"esolang","input":"text","output":"text","chunk":"esolang"},{"id":"from_jsfuck","v":1,"name":"From JSFuck","summary":"Decode JSFuck, JavaScript written with only []()!+, back to the code or text it builds.","category":"code","tags":["jsfuck","javascript","obfuscation","deobfuscation","ctf"],"aliases":["jsfuck","jsfuck decode","jsfuck decoder","[]()!+","js fuck","deobfuscate jsfuck"],"family":"esolang","input":"text","output":"text","pair":{"title":"JSFuck","direction":"decode","with":"to_jsfuck"},"chunk":"esolang"},{"id":"from_leet_speak","v":1,"name":"From Leet Speak","summary":"Read leet speak back into letters: h3ll0 w0rld becomes HELLO WORLD.","category":"utility","tags":["leet","1337","text","fun"],"aliases":["Convert Leet Speak","leetspeak decode","1337 decode","l33t"],"input":"text","output":"text","pair":{"title":"Leet speak","direction":"decode","with":"to_leet_speak"},"chunk":"utility"},{"id":"from_messagepack","v":1,"name":"From MessagePack","summary":"Decode MessagePack to JSON, showing binary data, timestamps and extension types.","category":"data-format","tags":["messagepack","msgpack","json","serialization","binary"],"aliases":["msgpack","msgpack decode","messagepack decode","messagepack to json"],"input":"bytes","output":"json","pair":{"title":"MessagePack","direction":"decode","with":"to_messagepack"},"chunk":"data-format"},{"id":"from_modhex","v":1,"name":"From Modhex","summary":"Decode Yubico ModHex, as typed by a YubiKey, to bytes.","category":"encoding","tags":["modhex","yubikey","otp","hex"],"aliases":["modhex decode","yubikey","yubico otp"],"input":"text","output":"bytes","pair":{"title":"Modhex","direction":"decode","with":"to_modhex"},"chunk":"encoding"},{"id":"from_morse_code","v":1,"name":"From Morse Code","summary":"Read Morse code back as text, in upper case.","category":"encoding","tags":["morse","itu","telegraph"],"aliases":["morse","morse code","international morse code","cw","decode morse"],"input":"text","output":"text","pair":{"title":"Morse code","direction":"decode","with":"to_morse_code"},"chunk":"classical"},{"id":"from_multitap","v":1,"name":"From Multi-tap","summary":"Read phone keypad presses back as text: 44 33 555 555 666 is HELLO.","category":"encoding","tags":["phone","keypad","sms","multi-tap"],"aliases":["multi-tap","multitap","phone keypad cipher","sms code","mobile phone cipher","keypad code"],"input":"text","output":"text","pair":{"title":"Multi-tap","direction":"decode","with":"to_multitap"},"chunk":"classical"},{"id":"from_nato_alphabet","v":1,"name":"From NATO Alphabet","summary":"Read NATO/ICAO phonetic alphabet code words (Alfa, Bravo…) back into letters and digits.","category":"encoding","tags":["nato","icao","phonetic","spelling-alphabet","radio"],"aliases":["NATO decode","phonetic alphabet decode","spelling alphabet decode","ICAO alphabet"],"input":"text","output":"text","pair":{"title":"NATO alphabet","direction":"decode","with":"to_nato_alphabet"},"chunk":"utility"},{"id":"from_octal","v":1,"name":"From Octal","summary":"Read octal numbers as bytes.","category":"encoding","tags":["octal","base8"],"aliases":["base8"],"input":"text","output":"bytes","pair":{"title":"Octal","direction":"decode","with":"to_octal"},"chunk":"encoding"},{"id":"from_punycode","v":1,"name":"From Punycode","summary":"Decode Punycode to Unicode text.","category":"encoding","tags":["punycode","idn","idna","domain","unicode"],"aliases":["idn","idna","xn--"],"input":"text","output":"text","pair":{"title":"Punycode","direction":"decode","with":"to_punycode"},"chunk":"encoding"},{"id":"from_quoted_printable","v":1,"name":"From Quoted-Printable","summary":"Decode Quoted-Printable text to bytes.","category":"encoding","tags":["quoted-printable","mime","email"],"aliases":["qp","mime"],"input":"text","output":"bytes","pair":{"title":"Quoted-Printable","direction":"decode","with":"to_quoted_printable"},"chunk":"encoding"},{"id":"from_roman_numerals","v":1,"name":"From Roman Numerals","summary":"Read a Roman numeral as a whole number: MMXXIV is 2024.","category":"encoding","tags":["roman","numerals","number"],"aliases":["roman numerals","from roman","roman decode","roman to arabic"],"input":"text","output":"bigint","pair":{"title":"Roman numerals","direction":"decode","with":"to_roman_numerals"},"chunk":"encoding"},{"id":"from_t9","v":1,"name":"From T9","summary":"Read T9 predictive-text key presses as words, one press per letter: 2769 5867 is ARMY JUMP.","category":"encoding","tags":["phone","keypad","sms","t9","predictive-text"],"aliases":["t9","t9 predictive text","text on nine keys","phone keypad words","t9 decode"],"input":"text","output":"text","pair":{"title":"T9","direction":"decode","with":"to_t9"},"chunk":"classical"},{"id":"from_tap_code","v":1,"name":"From Tap Code","summary":"Read the prisoners' tap code (.. ... or 23) back into letters.","category":"encoding","tags":["tap-code","knock-code","polybius","pow"],"aliases":["tap code","knock code","prisoner tap code","smitty code"],"input":"text","output":"text","pair":{"title":"Tap code","direction":"decode","with":"to_tap_code"},"chunk":"classical"},{"id":"from_unary","v":1,"name":"From Unary","summary":"Turn a Unary or Lenguage program (or its length) into the Brainfuck program it stands for.","category":"code","tags":["unary","lenguage","brainfuck","esolang","ctf"],"aliases":["unary","unary decode","unary to brainfuck","lenguage","lenguage decode"],"family":"esolang","input":"text","output":"text","pair":{"title":"Unary","direction":"decode","with":"to_unary"},"chunk":"esolang"},{"id":"from_unix_timestamp","v":1,"name":"From UNIX Timestamp","summary":"Turn a Unix timestamp (seconds, ms, µs or ns since 1970) into a date in a chosen format and time zone.","category":"utility","tags":["time","date","unix","epoch","timestamp","posix"],"aliases":["epoch to date","unix time","timestamp to date","posix time","unix epoch"],"input":"decimal","output":"text","pair":{"title":"UNIX Timestamp","direction":"decode","with":"to_unix_timestamp"},"chunk":"time"},{"id":"from_uuencode","v":1,"name":"From UUencode","summary":"Decode uuencoded text (begin … end) back to bytes, as POSIX uudecode does.","category":"encoding","tags":["uuencode","uu","posix","usenet","email"],"aliases":["uudecode","uu decode","uue"],"input":"text","output":"bytes","pair":{"title":"UUencode","direction":"decode","with":"to_uuencode"},"chunk":"encoding"},{"id":"from_xxencode","v":1,"name":"From XXencode","summary":"Decode xxencoded text (begin … end) back to bytes.","category":"encoding","tags":["xxencode","xx","uuencode","usenet"],"aliases":["xxdecode","xx decode","xxe"],"input":"text","output":"bytes","pair":{"title":"XXencode","direction":"decode","with":"to_xxencode"},"chunk":"encoding"},{"id":"from_yenc","v":1,"name":"From yEnc","summary":"Decode yEnc (=ybegin … =yend) back to bytes, joining multi-part files and checking CRC-32s.","category":"encoding","tags":["yenc","usenet","nntp"],"aliases":["yenc decode","ydecode","ybegin"],"input":"bytes","output":"bytes","pair":{"title":"yEnc","direction":"decode","with":"to_yenc"},"chunk":"encoding"},{"id":"from_zbase32","v":1,"name":"From z-base-32","summary":"Decode z-base-32 text to bytes.","category":"encoding","tags":["base32","zbase32"],"aliases":["z-base-32 decode","zbase32","zbase-32","z base 32"],"input":"text","output":"bytes","pair":{"title":"z-base-32","direction":"decode","with":"to_zbase32"},"chunk":"encoding"},{"id":"fuzzy_match","v":1,"name":"Fuzzy Match","summary":"Find the lines that contain a pattern's letters in order, scored and marked as Sublime Text does.","category":"utility","tags":["search","fuzzy","match","score"],"aliases":["fuzzy search","fuzzy find","fzf","sublime","approximate match"],"input":"text","output":"marked","chunk":"utility"},{"id":"gcd","v":1,"name":"GCD","summary":"The greatest common divisor of a list of integers.","category":"arithmetic","tags":["number-theory","gcd"],"aliases":["greatest common divisor","gcd of a list","hcf","highest common factor","pgcd","coprime"],"input":"text","output":"bigint","chunk":"math"},{"id":"generate_all_checksums","v":1,"name":"Generate All Checksums","summary":"Compute every checksum and CRC at once, as a table, optionally of one width.","category":"hashing","tags":["checksum","crc","identify"],"aliases":["Generate all checksums","all checksums","all crcs","crc reveng","which crc"],"input":"bytes","output":"table","chunk":"hashing"},{"id":"generate_all_hashes","v":1,"name":"Generate All Hashes","summary":"Compute every hash at once, as a table of names and digests, optionally of one length.","category":"hashing","tags":["hash","digest","identify"],"aliases":["Generate all hashes","all hashes","every hash","hash all"],"input":"bytes","output":"table","chunk":"hashing"},{"id":"generate_de_bruijn_sequence","v":1,"name":"Generate De Bruijn Sequence","summary":"A sequence in which every string of n symbols from an alphabet appears exactly once.","category":"utility","tags":["combinatorics","generator","pattern","exploit"],"aliases":["de bruijn","debruijn","cyclic pattern","pattern create","pwn cyclic"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"generate_ecdsa_key_pair","v":1,"name":"Generate ECDSA Key Pair","summary":"Generate a new elliptic-curve key pair on P-256, P-384, P-521, secp256k1, Brainpool, SM2 or Ed25519.","category":"encryption","tags":["ecdsa","ecc","key-generation","keygen","p-256","secp256k1","ed25519","public-key"],"aliases":["ec keygen","generate ec key","openssl ecparam -genkey","openssl genpkey ec","generate ed25519 key","secp256k1 key","new ec key"],"input":"bytes","output":"text","chunk":"pki"},{"id":"generate_hotp","v":1,"name":"Generate HOTP","summary":"Generate an HMAC-based one-time password (RFC 4226) from a secret and a counter.","category":"hashing","tags":["otp","hotp","2fa","mfa","authenticator","rfc4226","hmac"],"aliases":["one-time password","hotp","2fa code","authenticator code","event-based otp"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"generate_image","v":1,"name":"Generate Image","summary":"Draw bytes as pixels: one gray level, an RGB or RGBA color, or one bit per pixel.","category":"image","tags":["image","pixels","visualize","bitmap","generate"],"aliases":["bytes to image","data to image","binary to image","visualise bytes"],"input":"bytes","output":"image","chunk":"image"},{"id":"generate_lorem_ipsum","v":1,"name":"Generate Lorem Ipsum","summary":"Write placeholder text: the standard Lorem ipsum passage, or random sentences from its words.","category":"utility","tags":["lorem-ipsum","placeholder","filler","generator","text"],"aliases":["Generate Lorem Ipsum","lorem ipsum","placeholder text","dummy text","filler text"],"input":"bytes","output":"text","chunk":"analysis"},{"id":"generate_pgp_key_pair","v":1,"name":"Generate PGP Key Pair","summary":"Make a new OpenPGP key pair (Curve25519, Ed25519, Ed448, NIST, Brainpool or RSA) and write both halves armored.","category":"encryption","tags":["pgp","gpg","openpgp","key","generate","keygen","nondeterministic"],"aliases":["pgp keygen","gpg generate key","new pgp key","openpgp key pair","gpg --gen-key"],"input":"bytes","output":"text","chunk":"pgp"},{"id":"generate_qr_code","v":1,"name":"Generate QR Code","summary":"Encode data as a QR code (any version, error correction level and mask), as PNG, SVG or text.","category":"image","tags":["qr-code","barcode","generate","image","2d-barcode"],"aliases":["qr code","qr","make qr code","qrcode","create qr code","barcode"],"input":"bytes","output":"bytes","chunk":"image"},{"id":"generate_rsa_key_pair","v":1,"name":"Generate RSA Key Pair","summary":"Generate a new RSA private and public key, as PEM, PKCS #1, JWK, DER or the numbers n, e, d, p and q.","category":"encryption","tags":["rsa","key-generation","keygen","public-key","random","pem","jwk"],"aliases":["rsa keygen","generate rsa key","openssl genrsa","openssl genpkey rsa","ssh-keygen rsa","new rsa key"],"input":"bytes","output":"text","chunk":"pki"},{"id":"generate_totp","v":1,"name":"Generate TOTP","summary":"Generate a time-based one-time password (RFC 6238), the six-digit codes authenticator apps show.","category":"hashing","tags":["otp","totp","2fa","mfa","authenticator","rfc6238","hmac"],"aliases":["one-time password","totp","2fa code","authenticator code","google authenticator"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"generate_uuid","v":1,"name":"Generate UUID","summary":"Generate a UUID of version 1, 3, 4, 5, 6, 7 or 8, as RFC 9562 defines them.","category":"utility","tags":["uuid","guid","random","generator","identifier"],"aliases":["Generate UUID","uuid","guid","uuid4","uuid7","uuidgen"],"input":"bytes","output":"text","chunk":"analysis"},{"id":"generic_code_beautify","v":1,"name":"Generic Code Beautify","summary":"Re-indent brace-structured code (C, Java, JavaScript, C#, Go, PHP…) without parsing it.","category":"code","tags":["beautify","format","indent","c","java","pretty-print"],"aliases":["code beautify","code formatter","c beautify","java beautify","reindent","indent code"],"input":"text","output":"text","chunk":"code"},{"id":"get_all_casings","v":1,"name":"Get All Casings","summary":"List every combination of upper and lower case letters in the text, one per line.","category":"utility","tags":["case","permutations","password","brute-force"],"aliases":["Get All Casings","case permutations","all cases","case combinations"],"input":"text","output":"text","chunk":"utility"},{"id":"get_time","v":1,"name":"Get Time","summary":"Output the current time as a Unix timestamp in seconds, milliseconds, microseconds or nanoseconds.","category":"utility","tags":["time","now","clock","unix","timestamp"],"aliases":["now","current time","timestamp now","epoch now","date now"],"input":"bytes","output":"bigint","chunk":"time"},{"id":"gost_decrypt","v":1,"name":"GOST Decrypt","summary":"Decrypt GOST 28147-89, Magma or Kuznyechik (GOST R 34.12-2015) in a GOST R 34.13 mode.","category":"encryption","tags":["gost","gost28147","magma","kuznyechik","grasshopper","block-cipher","russia"],"aliases":["gost","gost 28147-89","magma","kuznyechik","kuznechik","grasshopper","gost r 34.12-2015","gost decrypt"],"input":"bytes","output":"bytes","pair":{"title":"GOST","direction":"decode","with":"gost_encrypt"},"chunk":"encryption"},{"id":"gost_encrypt","v":1,"name":"GOST Encrypt","summary":"Encrypt with GOST 28147-89, Magma or Kuznyechik (GOST R 34.12-2015) in a GOST R 34.13 mode.","category":"encryption","tags":["gost","gost28147","magma","kuznyechik","grasshopper","block-cipher","russia"],"aliases":["gost","gost 28147-89","magma","kuznyechik","kuznechik","grasshopper","gost r 34.12-2015","gost encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"gost_decrypt"},"pair":{"title":"GOST","direction":"encode","with":"gost_decrypt"},"chunk":"encryption"},{"id":"gost_hash","v":1,"name":"GOST Hash","summary":"Compute the 256-bit GOST R 34.11-94 digest, with a choice of S-boxes.","category":"hashing","tags":["hash","gost","gost-r-34-11-94","rfc5831","digest"],"aliases":["GOST R 34.11-94","GOST 34.11-94","gost94","gost-crypto","gost94-cryptopro","GOST R 34.11"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"gost_key_unwrap","v":1,"name":"GOST Key Unwrap","summary":"Unwrap a key wrapped with GOST 28147-89 (RFC 4357, CryptoPro) or Magma or Kuznyechik (KImp15).","category":"encryption","tags":["gost","key-wrap","cryptopro","kimp15","magma","kuznyechik","rfc4357"],"aliases":["gost key unwrap","cryptopro key unwrap","kimp15","kimp28147","gost unwrap"],"input":"bytes","output":"bytes","pair":{"title":"GOST Key Wrap","direction":"decode","with":"gost_key_wrap"},"chunk":"encryption"},{"id":"gost_key_wrap","v":1,"name":"GOST Key Wrap","summary":"Wrap a key with GOST 28147-89 (RFC 4357, CryptoPro) or with Magma or Kuznyechik (KExp15).","category":"encryption","tags":["gost","key-wrap","cryptopro","kexp15","magma","kuznyechik","rfc4357"],"aliases":["gost key wrap","cryptopro key wrap","kexp15","kexp28147","gost wrap"],"input":"bytes","output":"bytes","inverse":{"op":"gost_key_unwrap"},"pair":{"title":"GOST Key Wrap","direction":"encode","with":"gost_key_unwrap"},"chunk":"encryption"},{"id":"gost_mac","v":1,"name":"GOST MAC","summary":"Compute a GOST 28147-89 MAC (imitovstavka), or GOST R 34.13's MAC with Magma or Kuznyechik.","category":"hashing","tags":["gost","mac","imitovstavka","gost28147","magma","kuznyechik","omac","rfc5830"],"aliases":["GOST Sign","gost sign","imitovstavka","имитовставка","gost 28147 mac","gost-mac","magma mac","kuznyechik mac","omac gost"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"gost_mac_verify","v":1,"name":"GOST MAC Verify","summary":"Check a GOST 28147-89 MAC (imitovstavka), or GOST R 34.13's MAC with Magma or Kuznyechik.","category":"hashing","tags":["gost","mac","verify","imitovstavka","gost28147","magma","kuznyechik","rfc5830"],"aliases":["GOST Verify","gost verify","check gost mac","imitovstavka check"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"gromark_decode","v":1,"name":"Gromark Decode","summary":"Decrypt the Gromark: a mixed alphabet and a chain-added running key of digits.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["gromark","gromark cipher","gronsfeld mixed alphabet running key"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"gromark_encode"},"pair":{"title":"Gromark","direction":"decode","with":"gromark_encode"},"chunk":"classical"},{"id":"gromark_encode","v":1,"name":"Gromark Encode","summary":"Encrypt with the Gromark: a mixed alphabet and a chain-added running key of digits.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["gromark","gromark cipher","gronsfeld mixed alphabet running key"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"gromark_decode"},"pair":{"title":"Gromark","direction":"encode","with":"gromark_decode"},"chunk":"classical"},{"id":"gronsfeld_decode","v":1,"name":"Gronsfeld Decode","summary":"Decrypt the Gronsfeld cipher: shift each letter back by the next digit of a numeric key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["gronsfeld","gronsfeld cipher","numeric vigenere"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"gronsfeld_encode"},"pair":{"title":"Gronsfeld","direction":"decode","with":"gronsfeld_encode"},"chunk":"classical"},{"id":"gronsfeld_encode","v":1,"name":"Gronsfeld Encode","summary":"Encrypt with the Gronsfeld cipher: Vigenère with a key of digits, shifting each letter by 0 to 9.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["gronsfeld","gronsfeld cipher","numeric vigenere"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"gronsfeld_decode"},"pair":{"title":"Gronsfeld","direction":"encode","with":"gronsfeld_decode"},"chunk":"classical"},{"id":"group_ip_addresses","v":1,"name":"Group IP addresses","summary":"Group a list of IP addresses by the subnet each belongs to, such as its /24.","category":"networking","tags":["ip","ipv4","ipv6","subnet","cidr","group"],"aliases":["subnet","group by subnet","cidr group","ip grouping","aggregate ips"],"input":"text","output":"text","chunk":"networking"},{"id":"gunzip","v":1,"name":"Gunzip","summary":"Decompress gzip data (RFC 1952), checking its CRC-32 and length.","category":"compression","tags":["gzip","deflate","rfc1952","decompress"],"aliases":["gunzip","gzip decompress","ungzip","zcat",".gz"],"input":"bytes","output":"bytes","pair":{"title":"Gzip","direction":"decode","with":"gzip"},"chunk":"compression"},{"id":"gzip","v":1,"name":"Gzip","summary":"Compress bytes into the gzip format (RFC 1952), optionally with a file name and comment.","category":"compression","tags":["gzip","deflate","rfc1952","compress"],"aliases":["gz","gzip compress",".gz"],"input":"bytes","output":"bytes","inverse":{"op":"gunzip"},"pair":{"title":"Gzip","direction":"encode","with":"gunzip"},"chunk":"compression"},{"id":"hamming_distance","v":1,"name":"Hamming Distance","summary":"How many positions differ between two samples of the same length, in bits, bytes or characters.","category":"analysis","tags":["distance","compare","bits"],"aliases":["hamming","bit difference","differing bits","popcount"],"input":"text","output":"number","chunk":"arithmetic"},{"id":"has160","v":1,"name":"HAS-160","summary":"Compute the 160-bit HAS-160 digest, the hash of Korea's KCDSA signature standard.","category":"hashing","tags":["hash","has-160","kcdsa","tta","digest"],"aliases":["has160","has 160","korean hash","kcdsa hash"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"hassh_client_fingerprint","v":1,"name":"HASSH Client Fingerprint","summary":"Fingerprint an SSH client with Salesforce's HASSH: an MD5 of the algorithms in its key exchange init message.","category":"networking","tags":["ssh","hassh","fingerprint","kexinit","threat-intel","md5"],"aliases":["hassh","ssh fingerprint","ssh client fingerprint","kexinit"],"input":"bytes","output":"text","chunk":"networking"},{"id":"hassh_server_fingerprint","v":1,"name":"HASSH Server Fingerprint","summary":"Fingerprint an SSH server with Salesforce's hasshServer: an MD5 of the algorithms in its key exchange init message.","category":"networking","tags":["ssh","hassh","fingerprint","kexinit","threat-intel","md5"],"aliases":["hasshserver","hassh server","ssh server fingerprint"],"input":"bytes","output":"text","chunk":"networking"},{"id":"haversine_distance","v":1,"name":"Haversine distance","summary":"The great-circle distance between two points on the Earth, by the haversine formula.","category":"utility","tags":["geo","gps","distance","great-circle","haversine"],"aliases":["great circle","distance between coordinates","gps distance","haversine"],"input":"text","output":"number","chunk":"conversion"},{"id":"head","v":1,"name":"Head","summary":"Keep the first lines or other items: the first 10 by default, or all but the last few.","category":"utility","tags":["head","lines","first","list"],"aliases":["Head","first lines","top"],"input":"text","output":"text","chunk":"utility"},{"id":"heatmap_chart","v":1,"name":"Heatmap chart","summary":"Count points of two numbers in a grid of bins, shown as shades of one color.","category":"analysis","tags":["chart","plot","visualization","histogram","density"],"aliases":["Heatmap chart","heat map","2d histogram","density plot"],"input":"text","output":"json","chunk":"charts"},{"id":"hex_density_chart","v":1,"name":"Hex Density chart","summary":"Count points of two numbers in a honeycomb of hexagons, shown as shades of one color.","category":"analysis","tags":["chart","plot","visualization","density","hexbin"],"aliases":["Hex Density chart","hexbin","hexagonal binning","hex density","honeycomb plot"],"input":"text","output":"json","chunk":"charts"},{"id":"hex_to_object_identifier","v":1,"name":"Hex to Object Identifier","summary":"Decode a DER object identifier from hex into dotted form, such as 1.2.840.113549.1.1.11.","category":"data-format","tags":["oid","asn1","der","x690","pki"],"aliases":["hex to oid","decode oid","oid decoder","object identifier"],"input":"text","output":"text","pair":{"title":"Object Identifier","direction":"decode","with":"object_identifier_to_hex"},"chunk":"pki"},{"id":"hex_to_pem","v":1,"name":"Hex to PEM","summary":"Wrap DER (as hex, or raw bytes) in a PEM block with the label you choose.","category":"data-format","tags":["pem","der","pki","certificate","key","hex","rfc7468"],"aliases":["to pem","der to pem","pem encode","make pem"],"input":"bytes","output":"text","pair":{"title":"PEM","direction":"encode","with":"pem_to_hex"},"chunk":"pki"},{"id":"hmac","v":1,"name":"HMAC","summary":"Compute an HMAC: a keyed message authentication code over a chosen hash.","category":"hashing","tags":["mac","hmac","rfc2104","keyed-hash"],"aliases":["hmac-sha256","hmac-sha1","hmac-md5","hmac-sha512","keyed hash","mac"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"html_to_text","v":1,"name":"HTML To Text","summary":"Turn HTML into readable plain text, as a browser lays it out: tags gone, entities decoded.","category":"utility","tags":["html","text","strip","markup","web","entities"],"aliases":["HTML To Text","html to plain text","html2text","inner text","render html as text"],"input":"text","output":"text","chunk":"utility"},{"id":"identify_cipher","v":1,"name":"Identify Cipher","summary":"Guess which classical cipher made a ciphertext from its statistics, ranked, with the evidence and a spell to try.","category":"analysis","tags":["cryptanalysis","identify","aca","statistics","classical"],"aliases":["cipher identifier","identify cipher type","what cipher is this","cipher type detection","ncid"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"image_brightness_contrast","v":1,"name":"Image Brightness / Contrast","summary":"Make an image lighter or darker, and raise or lower its contrast.","category":"image","tags":["image","pixels","brightness","contrast"],"aliases":["brightness","contrast","image brightness contrast"],"input":"image","output":"image","chunk":"image"},{"id":"image_filter","v":1,"name":"Image Filter","summary":"Turn an image grayscale (Rec. 601 or Rec. 709 luma) or sepia.","category":"image","tags":["image","pixels","grayscale","greyscale","sepia","filter","luma"],"aliases":["grayscale","greyscale","sepia","black and white","desaturate"],"input":"image","output":"image","chunk":"image"},{"id":"image_hue_saturation_lightness","v":1,"name":"Image Hue/Saturation/Lightness","summary":"Shift an image's hues, and raise or lower its saturation and lightness, in HSL.","category":"image","tags":["image","pixels","hue","saturation","lightness","hsl"],"aliases":["hue","saturation","lightness","hsl","image hue saturation lightness"],"input":"image","output":"image","chunk":"image"},{"id":"image_opacity","v":1,"name":"Image Opacity","summary":"Make an image more transparent: scale every pixel's alpha by a percentage.","category":"image","tags":["image","pixels","opacity","alpha","transparency"],"aliases":["transparency","alpha"],"input":"image","output":"image","chunk":"image"},{"id":"index_of_coincidence","v":1,"name":"Index of Coincidence","summary":"Friedman's index of coincidence: the chance that two letters picked from the text match.","category":"analysis","tags":["statistics","cryptanalysis","frequency","friedman"],"aliases":["ic","ioc","kappa","friedman test","coincidence"],"input":"bytes","output":"number","chunk":"arithmetic"},{"id":"internet_checksum","v":1,"name":"Internet Checksum","summary":"Compute the 16-bit Internet checksum of IPv4, ICMP, UDP and TCP (RFC 1071).","category":"hashing","tags":["checksum","rfc1071","ip","tcp","udp","icmp"],"aliases":["TCP/IP Checksum","ip checksum","ipv4 header checksum","tcp checksum","udp checksum","icmp checksum","ones complement sum"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"interrupted_key_decode","v":1,"name":"Interrupted Key Decode","summary":"Decrypt an interrupted key: undo a keyword that starts again at each word or marked place.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["interrupted key","interrupted key cipher","restarting key"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"interrupted_key_encode"},"pair":{"title":"Interrupted Key","direction":"decode","with":"interrupted_key_encode"},"chunk":"classical"},{"id":"interrupted_key_encode","v":1,"name":"Interrupted Key Encode","summary":"Encrypt with an interrupted key: a keyword that starts again at each word or marked place.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["interrupted key","interrupted key cipher","restarting key"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"interrupted_key_decode"},"pair":{"title":"Interrupted Key","direction":"encode","with":"interrupted_key_decode"},"chunk":"classical"},{"id":"invert_image","v":1,"name":"Invert Image","summary":"Invert an image's colors: each red, green and blue value v becomes 255 − v.","category":"image","tags":["image","pixels","invert","negative"],"aliases":["negative","invert colors"],"input":"image","output":"image","inverse":{"op":"invert_image"},"chunk":"image"},{"id":"ipv6_transition_addresses","v":1,"name":"IPv6 Transition Addresses","summary":"Make the IPv6 transition addresses for an IPv4 address (6to4, NAT64, ISATAP, Teredo), or find the IPv4 in one.","category":"networking","tags":["ipv6","ipv4","6to4","teredo","nat64","isatap","tunnel"],"aliases":["6to4","teredo","nat64","isatap","ipv4 to ipv6","ipv4 mapped"],"input":"text","output":"text","chunk":"networking"},{"id":"is_prime","v":1,"name":"Is Prime","summary":"Test whether an integer is prime, with the reason: a small factor, a Miller–Rabin witness, or a proof.","category":"arithmetic","tags":["number-theory","primes","primality"],"aliases":["primality test","prime test","is it prime","miller rabin","baillie psw","bpsw"],"input":"bigint","output":"text","chunk":"math"},{"id":"ja3_fingerprint","v":1,"name":"JA3 Fingerprint","summary":"Fingerprint a TLS client from its ClientHello with Salesforce's JA3: an MD5 of its version, ciphers and extensions.","category":"networking","tags":["tls","ja3","fingerprint","client-hello","threat-intel","md5"],"aliases":["ja3","ja3 hash","tls fingerprint","client hello fingerprint"],"input":"bytes","output":"text","chunk":"networking"},{"id":"ja3s_fingerprint","v":1,"name":"JA3S Fingerprint","summary":"Fingerprint a TLS server's reply with Salesforce's JA3S: an MD5 of its ServerHello's version, cipher and extensions.","category":"networking","tags":["tls","ja3s","ja3","fingerprint","server-hello","threat-intel","md5"],"aliases":["ja3s","ja3s hash","server hello fingerprint","tls server fingerprint"],"input":"bytes","output":"text","chunk":"networking"},{"id":"ja4_fingerprint","v":1,"name":"JA4 Fingerprint","summary":"Fingerprint a TLS client from its ClientHello with FoxIO's JA4, which stays stable when clients shuffle extensions.","category":"networking","tags":["tls","ja4","fingerprint","client-hello","threat-intel","quic","sha256"],"aliases":["ja4","ja4 hash","tls fingerprint","ja4+","client hello fingerprint"],"input":"bytes","output":"text","chunk":"networking"},{"id":"javascript_beautify","v":1,"name":"JavaScript Beautify","summary":"Reformat JavaScript one statement per line, indented by block, without changing what it does.","category":"code","tags":["javascript","beautify","format","pretty-print","deobfuscation","ecmascript"],"aliases":["js beautify","js format","javascript format","prettify javascript","unminify javascript","js pretty print"],"input":"text","output":"text","chunk":"code"},{"id":"javascript_minify","v":1,"name":"JavaScript Minify","summary":"Shrink JavaScript with Terser: remove whitespace and comments, shorten names and simplify code.","category":"code","tags":["javascript","minify","compress","uglify","terser","ecmascript"],"aliases":["js minify","minify js","uglify","uglifyjs","terser","compress javascript"],"input":"text","output":"text","chunk":"code"},{"id":"javascript_parser","v":1,"name":"JavaScript Parser","summary":"Parse JavaScript into its ESTree syntax tree, optionally with positions, tokens and comments.","category":"code","tags":["javascript","ast","estree","parse","syntax-tree","ecmascript"],"aliases":["js parser","parse javascript","javascript ast","esprima","acorn","estree"],"input":"text","output":"json","chunk":"code"},{"id":"jq","v":1,"name":"Jq","summary":"Filter and transform JSON with a jq program (jq 1.8.2).","category":"code","tags":["json","jq","query","filter","transform"],"aliases":["jq filter","jq query","json query","jqlang"],"input":"text","output":"text","chunk":"code"},{"id":"json_beautify","v":1,"name":"JSON Beautify","summary":"Indent JSON for reading, one value per line, keeping every number and string exactly as written.","category":"data-format","tags":["json","beautify","format","pretty-print","jsonc"],"aliases":["json format","json pretty print","pretty json","prettify json","json indent"],"input":"text","output":"text","chunk":"data-format"},{"id":"json_minify","v":1,"name":"JSON Minify","summary":"Remove the whitespace from JSON, keeping every number and string exactly as written.","category":"data-format","tags":["json","minify","compact","jsonc"],"aliases":["json compact","compress json","json strip whitespace","jsonc to json"],"input":"text","output":"text","chunk":"data-format"},{"id":"json_to_csv","v":1,"name":"JSON to CSV","summary":"Write an array of JSON objects (or of arrays) as CSV, with a header row for objects.","category":"data-format","tags":["csv","json","spreadsheet","rfc4180"],"aliases":["csv","json to csv","json to tsv","export csv","comma-separated values"],"input":"json","output":"text","pair":{"title":"CSV","direction":"encode","with":"csv_to_json"},"chunk":"data-format"},{"id":"json_to_yaml","v":1,"name":"JSON to YAML","summary":"Write JSON as YAML 1.2 in block style, quoting any string that would read as another type.","category":"data-format","tags":["yaml","json","config"],"aliases":["yaml","yml","json to yml","yaml dump"],"input":"json","output":"text","inverse":{"op":"yaml_to_json"},"pair":{"title":"YAML","direction":"encode","with":"yaml_to_json"},"chunk":"data-format"},{"id":"jsonata_query","v":1,"name":"JSONata Query","summary":"Query and transform JSON with a JSONata expression.","category":"code","tags":["json","jsonata","query","transform","extract"],"aliases":["jsonata","json query","json transform"],"input":"json","output":"json","chunk":"code"},{"id":"jsonpath_query","v":1,"name":"JSONPath Query","summary":"Select values from JSON with a JSONPath query (RFC 9535), as values or normalized paths.","category":"code","tags":["json","jsonpath","query","select","extract","filter"],"aliases":["jpath","jpath expression","json path","jsonpath","json query","rfc 9535"],"input":"json","output":"json","chunk":"code"},{"id":"jump","v":1,"name":"Jump","summary":"Go to a Label, forwards to skip steps or back to repeat them a set number of times.","category":"flow-control","tags":["flow-control","goto","loop","repeat","skip"],"aliases":["Jump","goto","repeat","loop","skip"],"input":"text","output":"text","flow":"jump","chunk":"flow"},{"id":"jwk_to_pem","v":1,"name":"JWK to PEM","summary":"Convert a JSON Web Key (or a JWK Set) into a PEM public or private key.","category":"data-format","tags":["jwk","jose","pem","key","rsa","ec","ed25519","rfc7517"],"aliases":["json web key to pem","jwk to der","jwks to pem"],"input":"json","output":"text","pair":{"title":"JWK","direction":"decode","with":"pem_to_jwk"},"chunk":"pki"},{"id":"jwt_decode","v":1,"name":"JWT Decode","summary":"Decode a JSON Web Token's header and payload, with its time claims as dates. Doesn't check the signature.","category":"encryption","tags":["jwt","jws","jose","token","oauth","openid","decode"],"aliases":["jwt","json web token","decode jwt","jwt.io","bearer token","id token","access token"],"input":"text","output":"json","chunk":"pki"},{"id":"jwt_sign","v":1,"name":"JWT Sign","summary":"Sign a JSON payload as a JSON Web Token: HS256 to HS512, RS, PS and ES 256 to 512, or EdDSA.","category":"encryption","tags":["jwt","jws","jose","token","sign","hmac","rsa","ecdsa","eddsa","nondeterministic"],"aliases":["sign jwt","json web token","create jwt","jwt encode","forge jwt","alg none"],"input":"json","output":"text","chunk":"pki"},{"id":"jwt_verify","v":1,"name":"JWT Verify","summary":"Check a JSON Web Token's signature with a secret or public key, and its exp and nbf times.","category":"encryption","tags":["jwt","jws","jose","token","verify","signature","hmac","rsa","ecdsa","eddsa"],"aliases":["verify jwt","validate jwt","check jwt","json web token","jwt signature"],"input":"text","output":"json","chunk":"pki"},{"id":"keccak","v":1,"name":"Keccak","summary":"Compute a Keccak digest with the original padding, as Ethereum's Keccak-256 does.","category":"hashing","tags":["hash","keccak","sha3","ethereum","sponge","digest"],"aliases":["keccak256","keccak-256","keccak512","ethereum hash"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"keyword_substitution_decode","v":1,"name":"Keyword Substitution Decode","summary":"Decrypt a keyword alphabet: map the keyed alphabet's letters back to A–Z.","category":"classical-cipher","tags":["substitution","monoalphabetic"],"aliases":["keyword cipher","keyword substitution","keyed alphabet","mixed alphabet","deranged alphabet"],"input":"bytes","output":"bytes","inverse":{"op":"keyword_substitution_encode"},"pair":{"title":"Keyword substitution","direction":"decode","with":"keyword_substitution_encode"},"chunk":"classical"},{"id":"keyword_substitution_encode","v":1,"name":"Keyword Substitution Encode","summary":"Encrypt with a keyword alphabet: A–Z map to the keyword's letters, then the rest in order.","category":"classical-cipher","tags":["substitution","monoalphabetic"],"aliases":["keyword cipher","keyword substitution","keyed alphabet","mixed alphabet","deranged alphabet"],"input":"bytes","output":"bytes","inverse":{"op":"keyword_substitution_decode"},"pair":{"title":"Keyword substitution","direction":"encode","with":"keyword_substitution_decode"},"chunk":"classical"},{"id":"label","v":1,"name":"Label","summary":"Name a place in the spell for Jump and Conditional Jump to go to.","category":"flow-control","tags":["flow-control","goto","loop","marker"],"aliases":["Label","goto target","loop start"],"input":"text","output":"text","flow":"label","chunk":"flow"},{"id":"lagrange_interpolation","v":1,"name":"Lagrange Interpolation","summary":"The polynomial through a set of points, its value at x (f(0) recovers a Shamir secret), or its coefficients.","category":"arithmetic","tags":["number-theory","polynomials","secret-sharing"],"aliases":["polynomial interpolation","lagrange polynomial","shamir secret sharing","interpolating polynomial","newton interpolation","polynomial through points"],"input":"text","output":"text","chunk":"math"},{"id":"lcm","v":1,"name":"LCM","summary":"The least common multiple of a list of integers.","category":"arithmetic","tags":["number-theory","lcm"],"aliases":["least common multiple","lowest common multiple","lcm of a list","ppcm","smallest common multiple"],"input":"text","output":"bigint","chunk":"math"},{"id":"levenshtein_distance","v":1,"name":"Levenshtein Distance","summary":"The fewest insertions, deletions and substitutions that turn one sample into another.","category":"analysis","tags":["distance","compare","edit-distance"],"aliases":["edit distance","levenshtein","string distance","wagner-fischer"],"input":"text","output":"number","chunk":"arithmetic"},{"id":"list_files","v":1,"name":"List files","summary":"List a set of files as a table: name, size in bytes, type and modification time.","category":"utility","tags":["files","archive","list","directory","table"],"aliases":["ls","dir","list archive","list contents","file list"],"input":"files","output":"table","chunk":"utility"},{"id":"list_primes","v":1,"name":"List Primes","summary":"List the primes in a range, from From up to the input.","category":"arithmetic","tags":["number-theory","primes"],"aliases":["prime numbers","primes between","sieve of eratosthenes","prime list","primes search"],"input":"bigint","output":"text","chunk":"math"},{"id":"lm_hash","v":1,"name":"LM Hash","summary":"Compute the legacy Windows LAN Manager (LM) password hash.","category":"hashing","tags":["hash","password","windows","lanman","des"],"aliases":["LANMAN","LAN Manager hash","lanman hash","lmhash","LM password hash"],"input":"text","output":"text","chunk":"hashing"},{"id":"lorenz","v":1,"name":"Lorenz","summary":"Encrypt or decrypt with the Lorenz SZ40/42 teleprinter cipher attachment (Bletchley Park's Tunny).","category":"classical-cipher","tags":["lorenz","tunny","teleprinter","ita2","bletchley","ww2"],"aliases":["Lorenz SZ40","Lorenz SZ42","Tunny","Schlüsselzusatz","lorenz cipher"],"family":"machine","input":"bytes","output":"bytes","chunk":"machines"},{"id":"ls47_decode","v":1,"name":"LS47 Decode","summary":"Decrypt LS47 with the same key, dropping the nonce and checking the signature.","category":"classical-cipher","tags":["hand-cipher","elsiefour","authenticated"],"aliases":["ls47","LS47 Decrypt","elsiefour","lc4"],"input":"text","output":"text","pair":{"title":"LS47","direction":"decode","with":"ls47_encode"},"chunk":"classical"},{"id":"ls47_encode","v":1,"name":"LS47 Encode","summary":"Encrypt with LS47, a hand cipher on a 7 × 7 board of tiles that changes after every character.","category":"classical-cipher","tags":["hand-cipher","elsiefour","authenticated"],"aliases":["ls47","LS47 Encrypt","elsiefour","lc4"],"input":"text","output":"text","pair":{"title":"LS47","direction":"encode","with":"ls47_decode"},"chunk":"classical"},{"id":"luhn","v":1,"name":"Luhn","summary":"Compute or check a Luhn (mod 10) check digit, as on card numbers and IMEIs, in any radix.","category":"hashing","tags":["checksum","check-digit","luhn","iso7812","credit-card"],"aliases":["Luhn Checksum","luhn algorithm","mod 10","luhn mod n","credit card check digit","imei check digit"],"input":"text","output":"text","chunk":"hashing"},{"id":"lz4_compress","v":1,"name":"LZ4 Compress","summary":"Compress bytes with LZ4, as an .lz4 frame or a bare block.","category":"compression","tags":["lz4","lz77","xxhash","compress"],"aliases":["lz4",".lz4","lz4 frame"],"input":"bytes","output":"bytes","inverse":{"op":"lz4_decompress"},"pair":{"title":"LZ4","direction":"encode","with":"lz4_decompress"},"chunk":"compression"},{"id":"lz4_decompress","v":1,"name":"LZ4 Decompress","summary":"Decompress LZ4 data: .lz4 frames (including legacy frames) or a bare block.","category":"compression","tags":["lz4","lz77","xxhash","decompress"],"aliases":["unlz4","lz4 -d",".lz4","lz4"],"input":"bytes","output":"bytes","pair":{"title":"LZ4","direction":"decode","with":"lz4_compress"},"chunk":"compression"},{"id":"lzma_compress","v":1,"name":"LZMA Compress","summary":"Compress bytes with LZMA into the .lzma format (LZMA Alone), as lzma and 7-Zip write it.","category":"compression","tags":["lzma","7-zip","range-coder","compress"],"aliases":["lzma",".lzma","lzma alone","7z"],"input":"bytes","output":"bytes","inverse":{"op":"lzma_decompress"},"pair":{"title":"LZMA","direction":"encode","with":"lzma_decompress"},"chunk":"compression"},{"id":"lzma_decompress","v":1,"name":"LZMA Decompress","summary":"Decompress .lzma (LZMA Alone) or .xz data.","category":"compression","tags":["lzma","xz","lzma2","7-zip","decompress"],"aliases":["unlzma","unxz","xz","xz -d",".lzma",".xz","lzma2"],"input":"bytes","output":"bytes","pair":{"title":"LZMA","direction":"decode","with":"lzma_compress"},"chunk":"compression"},{"id":"lznt1_decompress","v":1,"name":"LZNT1 Decompress","summary":"Decompress LZNT1, the LZ77 format of NTFS file compression and RtlCompressBuffer.","category":"compression","tags":["lznt1","ntfs","ms-xca","windows","decompress"],"aliases":["lznt1","ntfs compression","RtlDecompressBuffer","COMPRESSION_FORMAT_LZNT1"],"input":"bytes","output":"bytes","chunk":"compression"},{"id":"lzstring_compress","v":1,"name":"LZString Compress","summary":"Compress text with lz-string, the LZW variant web apps use for localStorage and share links.","category":"compression","tags":["lz-string","lzw","javascript","compress"],"aliases":["lz-string","lzstring","compressToBase64","compressToEncodedURIComponent"],"input":"text","output":"bytes","inverse":{"op":"lzstring_decompress"},"pair":{"title":"LZString","direction":"encode","with":"lzstring_decompress"},"chunk":"compression"},{"id":"lzstring_decompress","v":1,"name":"LZString Decompress","summary":"Decompress lz-string data (Base64, URI-safe, UTF-16 or raw) back to text.","category":"compression","tags":["lz-string","lzw","javascript","decompress"],"aliases":["lz-string","lzstring","decompressFromBase64","decompressFromEncodedURIComponent"],"input":"bytes","output":"text","pair":{"title":"LZString","direction":"decode","with":"lzstring_compress"},"chunk":"compression"},{"id":"macho_info","v":1,"name":"Mach-O Info","summary":"Read a macOS or iOS binary's header, load commands, segments, sections and symbols.","category":"analysis","tags":["mach-o","macos","ios","executable","dylib","forensics","reverse-engineering"],"aliases":["otool","macho header","parse mach-o","mach-o load commands","universal binary"],"input":"bytes","output":"json","chunk":"forensics"},{"id":"matrix_determinant","v":1,"name":"Matrix Determinant","summary":"The determinant of a square matrix, exactly or modulo n.","category":"arithmetic","tags":["matrices","linear-algebra"],"aliases":["determinant","det","matrix det","determinant of a matrix"],"input":"text","output":"text","chunk":"math"},{"id":"matrix_inverse","v":1,"name":"Matrix Inverse","summary":"The inverse of a square matrix, exactly or modulo n (as a Hill cipher's decryption key).","category":"arithmetic","tags":["matrices","linear-algebra","hill-cipher"],"aliases":["inverse matrix","invert matrix","matrix inverse mod 26","hill cipher key inverse","inverse of a matrix"],"input":"text","output":"text","chunk":"math"},{"id":"matrix_multiply","v":1,"name":"Matrix Multiply","summary":"Multiply two or more matrices, in order, exactly or modulo n.","category":"arithmetic","tags":["matrices","linear-algebra","hill-cipher"],"aliases":["matrix product","matrix multiplication","multiply matrices","matrix mod"],"input":"text","output":"text","chunk":"math"},{"id":"md2","v":1,"name":"MD2","summary":"Compute the 128-bit MD2 digest of the input.","category":"hashing","tags":["hash","md2","rfc1319","digest"],"aliases":["md2sum"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"md4","v":1,"name":"MD4","summary":"Compute the 128-bit MD4 digest of the input.","category":"hashing","tags":["hash","md4","rfc1320","digest"],"aliases":["md4sum"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"md5","v":1,"name":"MD5","summary":"Compute the 128-bit MD5 digest of the input.","category":"hashing","tags":["hash","md5","rfc1321","digest"],"aliases":["md5sum","message digest 5"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"md6","v":1,"name":"MD6","summary":"Compute an MD6 digest of 1 to 512 bits, optionally keyed, in tree or sequential mode.","category":"hashing","tags":["hash","md6","sha3-candidate","tree-hash","mac","digest"],"aliases":["md6-256","md6-512","md6-224","md6-384","md6sum","pumpkin hash"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"mean","v":1,"name":"Mean","summary":"The arithmetic mean (average) of a list of numbers.","category":"arithmetic","tags":["arithmetic","statistics","average"],"aliases":["average","arithmetic mean","avg"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"median","v":1,"name":"Median","summary":"The middle value of a list of numbers, once sorted.","category":"arithmetic","tags":["arithmetic","statistics","average"],"aliases":["middle","50th percentile","average"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"merge","v":1,"name":"Merge","summary":"End a Fork or Subsection: join the pieces again, so the steps after it see the whole.","category":"flow-control","tags":["flow-control","join","end"],"aliases":["Merge","end fork","join pieces","Merge All"],"input":"text","output":"text","flow":"merge","chunk":"flow"},{"id":"microsoft_script_decoder","v":1,"name":"Microsoft Script Decoder","summary":"Decode JScript.Encode and VBScript.Encode scripts (#@~^…^#~@) made by the Windows Script Encoder.","category":"code","tags":["jscript","vbscript","screnc","malware","deobfuscation","windows"],"aliases":["jscript.encode","vbscript.encode","screnc","script encoder","vbe decode","jse decode","decode vbe"],"input":"text","output":"text","chunk":"code"},{"id":"mime_decoding","v":1,"name":"MIME Decoding","summary":"Decode RFC 2047 encoded words (=?UTF-8?B?…?= and =?ISO-8859-1?Q?…?=) in email headers to text.","category":"data-format","tags":["mime","email","rfc2047","encoded-word","header","quoted-printable","base64"],"aliases":["encoded word","rfc 2047","email header","decode subject","=?utf-8?"],"input":"bytes","output":"text","chunk":"networking"},{"id":"mobius_function","v":1,"name":"Möbius Function","summary":"μ(n): 0 if a square divides n, otherwise 1 or −1 for an even or odd number of primes.","category":"arithmetic","tags":["number-theory"],"aliases":["mobius","möbius","moebius function","μ"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"mod","v":1,"name":"MOD","summary":"Reduce each number in a list modulo a modulus.","category":"arithmetic","tags":["arithmetic","modular","remainder"],"aliases":["modulo","modulus","remainder","%"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"modular_exponentiation","v":1,"name":"Modular Exponentiation","summary":"Raise the input to a power modulo a modulus: bᵉ mod m, as in RSA.","category":"arithmetic","tags":["number-theory","modular","rsa"],"aliases":["modpow","powmod","pow mod","power modulo","rsa"],"input":"bigint","output":"bigint","chunk":"arithmetic"},{"id":"modular_inverse","v":1,"name":"Modular Inverse","summary":"Find x with a·x ≡ 1 (mod m), where the input is a: for example an RSA private exponent.","category":"arithmetic","tags":["number-theory","modular","rsa"],"aliases":["modinv","inverse mod","multiplicative inverse","invert modulo"],"input":"bigint","output":"bigint","chunk":"arithmetic"},{"id":"modular_square_root","v":1,"name":"Modular Square Root","summary":"Every x with x² ≡ a (mod n): Tonelli–Shanks or Cipolla for primes, Hensel and the CRT for the rest.","category":"arithmetic","tags":["number-theory","modular","quadratic-residue"],"aliases":["tonelli shanks","cipolla","sqrt mod","square root mod p","quadratic residue","rabin decrypt","modular sqrt"],"input":"bigint","output":"text","chunk":"math"},{"id":"multiple_bombe","v":1,"name":"Multiple Bombe","summary":"Run the Bombe on every rotor order of a set of Enigma rotors and reflectors, as Bletchley's bombe bays did.","category":"classical-cipher","tags":["enigma","bombe","crib","cryptanalysis","bletchley","ww2"],"aliases":["Multiple Bombe","bombe all rotor orders","enigma rotor order search"],"family":"machine","input":"bytes","output":"table","chunk":"machines"},{"id":"multiply","v":1,"name":"Multiply","summary":"Multiply a list of numbers together, exactly.","category":"arithmetic","tags":["arithmetic","multiply","product"],"aliases":["product","times","multiplication"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"murmurhash3","v":1,"name":"MurmurHash3","summary":"Compute MurmurHash3, the fast non-cryptographic hash, in its x86 32-bit or x64 128-bit form.","category":"hashing","tags":["hash","murmur","murmurhash","non-cryptographic"],"aliases":["murmur","murmur3","mmh3","MurmurHash3_x86_32","MurmurHash3_x64_128"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"next_prime","v":1,"name":"Next Prime","summary":"The smallest prime greater than the input.","category":"arithmetic","tags":["number-theory","primes"],"aliases":["nextprime","next prime number","closest prime","following prime"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"nicodemus_decode","v":1,"name":"Nicodemus Decode","summary":"Decrypt the Nicodemus: undo its column-by-column encipherment and keyword transposition.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","transposition"],"aliases":["nicodemus","nicodemus cipher"],"family":"tableau","input":"bytes","output":"bytes","pair":{"title":"Nicodemus","direction":"decode","with":"nicodemus_encode"},"chunk":"classical"},{"id":"nicodemus_encode","v":1,"name":"Nicodemus Encode","summary":"Encrypt with the Nicodemus: a keyword columnar transposition with each column enciphered.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","transposition"],"aliases":["nicodemus","nicodemus cipher"],"family":"tableau","input":"bytes","output":"bytes","pair":{"title":"Nicodemus","direction":"encode","with":"nicodemus_decode"},"chunk":"classical"},{"id":"nihilist_decode","v":1,"name":"Nihilist Decode","summary":"Decrypt the Nihilist substitution: subtract the key's numbers and read the coordinates as letters.","category":"classical-cipher","tags":["aca","key-square","numeric"],"aliases":["nihilist","nihilist cipher","nihilist substitution"],"family":"key-square","input":"text","output":"bytes","pair":{"title":"Nihilist","direction":"decode","with":"nihilist_encode"},"chunk":"classical"},{"id":"nihilist_encode","v":1,"name":"Nihilist Encode","summary":"Encrypt with the Nihilist substitution: square coordinates as numbers, plus a repeating key's numbers.","category":"classical-cipher","tags":["aca","key-square","numeric"],"aliases":["nihilist","nihilist cipher","nihilist substitution"],"family":"key-square","input":"bytes","output":"text","pair":{"title":"Nihilist","direction":"encode","with":"nihilist_decode"},"chunk":"classical"},{"id":"normalize_image","v":1,"name":"Normalize Image","summary":"Stretch each color channel so its darkest value becomes 0 and its brightest 255.","category":"image","tags":["image","pixels","normalize","normalise","stretch","levels"],"aliases":["normalise image","auto levels","stretch contrast"],"input":"image","output":"image","chunk":"image"},{"id":"normalize_unicode","v":1,"name":"Normalize Unicode","summary":"Convert text to a Unicode normalization form: NFC, NFD, NFKC or NFKD.","category":"utility","tags":["unicode","normalize","nfc","nfd","nfkc","nfkd"],"aliases":["Normalise Unicode","unicode normalization","nfc","nfd","nfkc","nfkd","canonicalize"],"input":"text","output":"text","chunk":"utility"},{"id":"not","v":1,"name":"NOT","summary":"Invert every bit of every byte.","category":"arithmetic","tags":["bitwise","invert","complement"],"aliases":["bitwise not","invert bits","ones' complement","complement","~"],"input":"bytes","output":"bytes","inverse":{"op":"not"},"chunk":"arithmetic"},{"id":"nt_hash","v":1,"name":"NT Hash","summary":"Compute the Windows NT (NTLM) password hash: MD4 of the UTF-16LE password.","category":"hashing","tags":["hash","password","windows","ntlm","md4"],"aliases":["NTLM","NTLM hash","ntlm hash","nthash","windows password hash","NT password hash"],"input":"text","output":"text","chunk":"hashing"},{"id":"nth_prime","v":1,"name":"Nth Prime","summary":"The nth prime number: 1 gives 2, 2 gives 3, 10 gives 29.","category":"arithmetic","tags":["number-theory","primes"],"aliases":["nth prime number","prime number n","p(n)","kth prime"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"numberwang","v":1,"name":"Numberwang","summary":"Find out whether your number is Numberwang.","category":"utility","tags":["joke","game","random"],"aliases":["Numberwang","is it numberwang","wangernumb"],"input":"text","output":"text","chunk":"analysis"},{"id":"object_identifier_to_hex","v":1,"name":"Object Identifier to Hex","summary":"Encode an object identifier such as 1.2.840.113549 as DER (hex), as X.690 encodes OIDs.","category":"data-format","tags":["oid","asn1","der","x690","pki"],"aliases":["oid to hex","encode oid","oid encoder","object identifier"],"input":"text","output":"text","pair":{"title":"Object Identifier","direction":"encode","with":"hex_to_object_identifier"},"chunk":"pki"},{"id":"ocr_words","v":1,"name":"OCR Words","summary":"List each word Tesseract OCR reads in an image, with its confidence and bounding box.","category":"image","tags":["image","pixels","ocr","text","tesseract","words","bounding-box","confidence"],"aliases":["ocr tsv","tesseract tsv","word boxes","ocr confidence"],"input":"image","output":"table","chunk":"image"},{"id":"offset_checker","v":1,"name":"Offset Checker","summary":"Mark the characters that are the same at the same position in every sample.","category":"utility","tags":["compare","offset","align","cryptanalysis"],"aliases":["Offset checker","align samples","common characters","compare positions"],"input":"text","output":"marked","chunk":"utility"},{"id":"optical_character_recognition","v":1,"name":"Optical Character Recognition","summary":"Read the text in an image with Tesseract OCR (English).","category":"image","tags":["image","pixels","ocr","text","tesseract","scan","screenshot"],"aliases":["ocr","tesseract","image to text","read text from image","text recognition"],"input":"image","output":"text","chunk":"image"},{"id":"or","v":1,"name":"OR","summary":"OR each byte with a key, repeating the key as needed: set the key's bits.","category":"arithmetic","tags":["bitwise"],"aliases":["bitwise or","inclusive or","|"],"input":"bytes","output":"bytes","chunk":"arithmetic"},{"id":"pad_lines","v":1,"name":"Pad Lines","summary":"Add characters at the start or end of each line, or pad every line to a width.","category":"utility","tags":["pad","lines","indent","align","text"],"aliases":["Pad lines","indent","left pad","right pad","padStart","padEnd","align"],"input":"text","output":"text","chunk":"utility"},{"id":"parity_bit_decode","v":1,"name":"Parity Bit Decode","summary":"Check and remove the parity bit of each block of binary digits.","category":"encoding","tags":["parity","error-detection","binary","serial"],"aliases":["remove parity bit","check parity","strip parity bit","parity decode"],"input":"text","output":"text","pair":{"title":"Parity Bit","direction":"decode","with":"parity_bit_encode"},"chunk":"hashing"},{"id":"parity_bit_encode","v":1,"name":"Parity Bit Encode","summary":"Add an even or odd parity bit to each block of binary digits.","category":"encoding","tags":["parity","error-detection","binary","serial"],"aliases":["Parity Bit","add parity bit","even parity","odd parity","parity encode"],"input":"text","output":"text","inverse":{"op":"parity_bit_decode"},"pair":{"title":"Parity Bit","direction":"encode","with":"parity_bit_decode"},"chunk":"hashing"},{"id":"parse_asn1","v":1,"name":"Parse ASN.1","summary":"Decode BER or DER (certificates, keys, CMS, LDAP, SNMP…) into a tree of ASN.1 types and values.","category":"data-format","tags":["asn1","der","ber","x690","pki","certificate","parser"],"aliases":["Parse ASN.1 hex string","asn.1","asn1parse","der decode","ber decode","dumpasn1","asn1 decoder"],"input":"bytes","output":"json","chunk":"pki"},{"id":"parse_colour_code","v":1,"name":"Parse colour code","summary":"Convert a colour between hex, RGB, HSL, HSV, HWB and CMYK, and name it if CSS has a name for it.","category":"utility","tags":["colour","color","rgb","hsl","hsv","cmyk","css"],"aliases":["color","colour converter","hex to rgb","rgb to hex","hsl","cmyk"],"input":"text","output":"json","chunk":"conversion"},{"id":"parse_csr","v":1,"name":"Parse CSR","summary":"Decode a certificate signing request (PKCS #10): subject, public key, requested extensions and attributes.","category":"data-format","tags":["csr","pkcs10","certificate-request","x509","pki","pem","parser"],"aliases":["certificate signing request","pkcs#10","pkcs10","openssl req -text","csr decoder"],"input":"bytes","output":"json","chunk":"pki"},{"id":"parse_datetime","v":1,"name":"Parse DateTime","summary":"Read a date and describe it: UTC and local time, Unix time, weekday, ISO week, day of the year and more.","category":"utility","tags":["time","date","parse","iso8601","week","timezone"],"aliases":["date info","day of week","week number","what day","day of year"],"input":"text","output":"json","chunk":"time"},{"id":"parse_ethernet_frame","v":1,"name":"Parse Ethernet frame","summary":"Decode an Ethernet frame (VLAN tags, LLC/SNAP, FCS) and the IPv4, IPv6, ARP, TCP, UDP or ICMP inside it, as JSON.","category":"networking","tags":["ethernet","packet","pcap","vlan","802-1q","llc","snap","arp","frame"],"aliases":["ethernet","ethernet frame","decode packet","packet parser","802.3","802.1q"],"input":"bytes","output":"json","chunk":"networking"},{"id":"parse_ip_range","v":1,"name":"Parse IP range","summary":"Describe an IP range given as CIDR or first–last, and list the addresses in it.","category":"networking","tags":["ip","ipv4","ipv6","cidr","subnet","netmask","range"],"aliases":["cidr","subnet calculator","ip calculator","netmask","ipcalc","expand cidr"],"input":"text","output":"text","chunk":"networking"},{"id":"parse_ipv4_header","v":1,"name":"Parse IPv4 header","summary":"Decode an IPv4 header and its options as JSON, checking the header checksum.","category":"networking","tags":["ipv4","ip","packet","header","pcap","rfc791","checksum"],"aliases":["ip header","ipv4 header","decode ip packet","ip packet"],"input":"bytes","output":"json","chunk":"networking"},{"id":"parse_ipv6_address","v":1,"name":"Parse IPv6 address","summary":"Describe an IPv6 address: canonical and expanded forms, type, special-purpose block, embedded IPv4 and more.","category":"networking","tags":["ipv6","address","rfc5952","rfc4291","multicast","eui-64"],"aliases":["ipv6","expand ipv6","compress ipv6","ipv6 info","canonical ipv6"],"input":"text","output":"json","chunk":"networking"},{"id":"parse_mime_message","v":1,"name":"Parse MIME message","summary":"Read an email (.eml) or other MIME message into JSON: headers, parts, decoded text and attachments.","category":"data-format","tags":["mime","email","eml","multipart","attachment","rfc2045","rfc5322"],"aliases":["eml","email","parse email","mime message","multipart","email attachments"],"input":"bytes","output":"json","chunk":"networking"},{"id":"parse_objectid_timestamp","v":1,"name":"Parse ObjectID timestamp","summary":"Read the creation time from a MongoDB ObjectId: its first four bytes, seconds since 1970.","category":"utility","tags":["mongodb","objectid","bson","timestamp","time","date"],"aliases":["objectid","mongodb objectid","mongo id","objectid to date","bson objectid"],"input":"text","output":"text","chunk":"networking"},{"id":"parse_pgp_key","v":1,"name":"Parse PGP Key","summary":"Show what an OpenPGP key holds: fingerprints, key IDs, algorithms, user IDs, subkeys, signatures and expiry.","category":"encryption","tags":["pgp","gpg","openpgp","key","fingerprint","parse","public-key"],"aliases":["gpg key info","pgp key info","pgp fingerprint","openpgp key","list packets","gpg --list-packets"],"input":"bytes","output":"json","chunk":"pgp"},{"id":"parse_qr_code","v":1,"name":"Parse QR Code","summary":"Find a QR code in an image and decode it, with error correction, perspective and inverted codes.","category":"image","tags":["qr-code","barcode","decode","image","2d-barcode"],"aliases":["read qr code","decode qr code","qr code reader","scan qr","zbar","qr"],"input":"image","output":"bytes","chunk":"image"},{"id":"parse_ssh_host_key","v":1,"name":"Parse SSH Host Key","summary":"Decode SSH public keys (OpenSSH, authorized_keys, known_hosts, RFC 4716) and give their SHA256 and MD5 fingerprints.","category":"networking","tags":["ssh","public-key","fingerprint","known-hosts","authorized-keys","openssh","rsa","ed25519"],"aliases":["ssh key","ssh fingerprint","ssh-keygen -l","known_hosts","authorized_keys","ssh public key"],"input":"text","output":"json","chunk":"networking"},{"id":"parse_tcp","v":1,"name":"Parse TCP","summary":"Decode a TCP segment's header, flags and options (MSS, window scale, SACK, timestamps) as JSON.","category":"networking","tags":["tcp","packet","header","pcap","rfc9293","segment"],"aliases":["tcp header","tcp segment","decode tcp","tcp flags","tcp options"],"input":"bytes","output":"json","chunk":"networking"},{"id":"parse_tls_record","v":1,"name":"Parse TLS record","summary":"Decode TLS and DTLS records and handshake messages (ClientHello, ServerHello, extensions, certificates) as JSON.","category":"networking","tags":["tls","ssl","dtls","handshake","client-hello","sni","alpn","pcap","x509"],"aliases":["tls","ssl record","client hello","server hello","decode tls","tls handshake","sni"],"input":"bytes","output":"json","chunk":"networking"},{"id":"parse_tlv","v":1,"name":"Parse TLV","summary":"Parse tag-length-value data, BER-TLV (EMV, ISO 7816, X.690) or fixed-size fields, as JSON.","category":"data-format","tags":["tlv","ber","emv","iso7816","asn1","smart-card"],"aliases":["tlv","ber-tlv","emv tlv","tag length value","parse ber"],"input":"bytes","output":"json","chunk":"data-format"},{"id":"parse_udp","v":1,"name":"Parse UDP","summary":"Decode a UDP datagram's header (ports, length, checksum) and payload as JSON.","category":"networking","tags":["udp","packet","header","pcap","rfc768","datagram"],"aliases":["udp header","udp datagram","decode udp"],"input":"bytes","output":"json","chunk":"networking"},{"id":"parse_unix_file_permissions","v":1,"name":"Parse UNIX file permissions","summary":"Convert UNIX permissions between octal (755), ls -l symbols (rwxr-xr-x) and chmod modes, and explain them.","category":"utility","tags":["unix","linux","permissions","chmod","octal","posix"],"aliases":["chmod","chmod calculator","file permissions","rwx","umask","ls -l"],"input":"text","output":"json","chunk":"conversion"},{"id":"parse_uri","v":1,"name":"Parse URI","summary":"Split a URI or URL into scheme, user, host, port, path, query parameters and fragment.","category":"networking","tags":["uri","url","rfc3986","whatwg","query-string","parse"],"aliases":["parse url","url parser","query string","split url","url components"],"input":"text","output":"json","chunk":"networking"},{"id":"parse_user_agent","v":1,"name":"Parse User Agent","summary":"Identify the browser, rendering engine, operating system and device type in a User-Agent string.","category":"networking","tags":["user-agent","browser","http","fingerprint","header"],"aliases":["user agent","ua","useragent","browser detection","ua parser"],"input":"text","output":"json","chunk":"networking"},{"id":"parse_x509_certificate","v":1,"name":"Parse X.509 certificate","summary":"Decode an X.509 certificate (PEM or DER): names, validity, public key, every standard extension, fingerprints.","category":"data-format","tags":["x509","certificate","pki","tls","pem","der","rfc5280","parser"],"aliases":["x.509","x509","certificate","cert","openssl x509 -text","crt","ssl certificate","tls certificate","decode certificate"],"input":"bytes","output":"json","chunk":"pki"},{"id":"parse_x509_certificate_bundles","v":1,"name":"Parse X.509 certificate bundles","summary":"List every certificate in a PEM bundle, a PKCS #7 file or concatenated DER as a table, with how they chain.","category":"data-format","tags":["x509","certificate","bundle","chain","pki","pkcs7","pem","table"],"aliases":["ca bundle","certificate chain","cacert.pem","p7b","pkcs7 certificates","cert bundle"],"input":"bytes","output":"table","chunk":"pki"},{"id":"parse_x509_crl","v":1,"name":"Parse X.509 CRL","summary":"Decode a certificate revocation list (RFC 5280): issuer, update times, revoked serials with reasons, extensions.","category":"data-format","tags":["x509","crl","revocation","pki","pem","der","rfc5280","parser"],"aliases":["crl","certificate revocation list","openssl crl -text","revoked certificates"],"input":"bytes","output":"json","chunk":"pki"},{"id":"pe_info","v":1,"name":"PE Info","summary":"Read a Windows executable's headers, sections, imports and exports (PE/COFF).","category":"analysis","tags":["pe","exe","dll","windows","executable","forensics","reverse-engineering"],"aliases":["pe header","parse exe","dumpbin","pefile","exe info","dll exports","imports"],"input":"bytes","output":"json","chunk":"forensics"},{"id":"pem_to_hex","v":1,"name":"PEM to Hex","summary":"Extract the DER inside PEM blocks (certificates, keys, CSRs…) as hex.","category":"data-format","tags":["pem","der","pki","certificate","key","hex","rfc7468"],"aliases":["pem","pem decode","pem to der","der","unpem"],"input":"text","output":"text","pair":{"title":"PEM","direction":"decode","with":"hex_to_pem"},"chunk":"pki"},{"id":"pem_to_jwk","v":1,"name":"PEM to JWK","summary":"Convert a PEM public or private key (or a certificate's key) into a JSON Web Key.","category":"data-format","tags":["jwk","jose","pem","key","rsa","ec","ed25519","rfc7517"],"aliases":["jwk","json web key","pem to json web key","key to jwk","jwks"],"input":"bytes","output":"json","pair":{"title":"JWK","direction":"encode","with":"jwk_to_pem"},"chunk":"pki"},{"id":"periodic_gromark_decode","v":1,"name":"Periodic Gromark Decode","summary":"Decrypt the Periodic Gromark: Gromark keyed by its keyword's order, slid on per period.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["periodic gromark","periodic gromark cipher"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"periodic_gromark_encode"},"pair":{"title":"Periodic Gromark","direction":"decode","with":"periodic_gromark_encode"},"chunk":"classical"},{"id":"periodic_gromark_encode","v":1,"name":"Periodic Gromark Encode","summary":"Encrypt with the Periodic Gromark: Gromark keyed by its keyword's order, slid on per period.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["periodic gromark","periodic gromark cipher"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"periodic_gromark_decode"},"pair":{"title":"Periodic Gromark","direction":"encode","with":"periodic_gromark_decode"},"chunk":"classical"},{"id":"pgp_decrypt","v":1,"name":"PGP Decrypt","summary":"Decrypt an OpenPGP message with the recipient's private key or the message's password.","category":"encryption","tags":["pgp","gpg","openpgp","decrypt","private-key"],"aliases":["gpg decrypt","openpgp decrypt","gpg --decrypt","decrypt pgp message"],"input":"bytes","output":"bytes","pair":{"title":"PGP","direction":"decode","with":"pgp_encrypt"},"chunk":"pgp"},{"id":"pgp_decrypt_and_verify","v":1,"name":"PGP Decrypt and Verify","summary":"Decrypt an OpenPGP message and check the signature inside it with the signer's public key.","category":"encryption","tags":["pgp","gpg","openpgp","decrypt","verify","signature"],"aliases":["gpg decrypt and verify","openpgp decrypt and verify","decrypt signed pgp message"],"input":"bytes","output":"json","chunk":"pgp"},{"id":"pgp_encrypt","v":1,"name":"PGP Encrypt","summary":"Encrypt data to OpenPGP public keys, or with a password, as GnuPG's --encrypt and --symmetric do.","category":"encryption","tags":["pgp","gpg","openpgp","encrypt","public-key","nondeterministic"],"aliases":["gpg encrypt","openpgp encrypt","gpg --encrypt","gpg --symmetric","pgp message"],"input":"bytes","output":"bytes","pair":{"title":"PGP","direction":"encode","with":"pgp_decrypt"},"chunk":"pgp"},{"id":"pgp_encrypt_and_sign","v":1,"name":"PGP Encrypt and Sign","summary":"Sign data with your OpenPGP private key, then encrypt it to the recipients' public keys.","category":"encryption","tags":["pgp","gpg","openpgp","encrypt","sign","nondeterministic"],"aliases":["gpg sign and encrypt","gpg --sign --encrypt","openpgp encrypt and sign","signed encrypted message"],"input":"bytes","output":"bytes","chunk":"pgp"},{"id":"pgp_sign","v":1,"name":"PGP Sign","summary":"Sign data with an OpenPGP private key: inline, detached, or as a cleartext-signed message.","category":"encryption","tags":["pgp","gpg","openpgp","sign","signature","clearsign","nondeterministic"],"aliases":["gpg sign","gpg --clearsign","gpg --detach-sign","openpgp sign","pgp signature"],"input":"bytes","output":"bytes","chunk":"pgp"},{"id":"pgp_verify","v":1,"name":"PGP Verify","summary":"Check an OpenPGP signature (cleartext, inline or detached) with the signer's public key, and show who signed.","category":"encryption","tags":["pgp","gpg","openpgp","verify","signature"],"aliases":["gpg verify","gpg --verify","openpgp verify","check pgp signature","verify signature"],"input":"bytes","output":"json","chunk":"pgp"},{"id":"phillips_decode","v":1,"name":"Phillips Decode","summary":"Decrypt the Phillips or Phillips-RC cipher: each letter moves diagonally up and to the left.","category":"classical-cipher","tags":["aca","key-square","periodic"],"aliases":["phillips","phillips cipher","phillips-rc","phillips rc"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Phillips","direction":"decode","with":"phillips_encode"},"chunk":"classical"},{"id":"phillips_encode","v":1,"name":"Phillips Encode","summary":"Encrypt with the Phillips cipher: eight shifted key squares in turn, each letter moved diagonally.","category":"classical-cipher","tags":["aca","key-square","periodic"],"aliases":["phillips","phillips cipher","phillips-rc","phillips rc"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Phillips","direction":"encode","with":"phillips_decode"},"chunk":"classical"},{"id":"php_deserialize","v":1,"name":"PHP Deserialize","summary":"Read PHP's serialize() format as JSON, showing classes and references without running anything.","category":"data-format","tags":["php","unserialize","deserialize","serialization","json"],"aliases":["php unserialize","unserialize","php deserialise","php to json"],"input":"bytes","output":"json","pair":{"title":"PHP serialization","direction":"decode","with":"php_serialize"},"chunk":"data-format"},{"id":"php_serialize","v":1,"name":"PHP Serialize","summary":"Write JSON in PHP's serialize() format, with classes, enums and references from typed JSON.","category":"data-format","tags":["php","serialize","serialization","json"],"aliases":["php serialize","serialize","php serialise","json to php"],"input":"json","output":"bytes","pair":{"title":"PHP serialization","direction":"encode","with":"php_deserialize"},"chunk":"data-format"},{"id":"play_media","v":1,"name":"Play Media","summary":"Play audio or video in the browser: MP3, WAV, Ogg, FLAC, MP4, WebM and others it supports.","category":"utility","tags":["audio","video","media","play"],"aliases":["play audio","play video","audio player","video player","listen"],"input":"bytes","output":"bytes","chunk":"media"},{"id":"playfair_decode","v":1,"name":"Playfair Decode","summary":"Decrypt Playfair digraphs with the keyword-built square: row pairs shift left, column pairs up.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["playfair","playfair cipher","seriated playfair","wheatstone","playfair decrypt"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Playfair","direction":"decode","with":"playfair_encode"},"chunk":"classical"},{"id":"playfair_encode","v":1,"name":"Playfair Encode","summary":"Encrypt pairs of letters with Wheatstone's Playfair cipher on a keyword-built 5 × 5 square.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["playfair","playfair cipher","seriated playfair","wheatstone","playfair encrypt"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Playfair","direction":"encode","with":"playfair_decode"},"chunk":"classical"},{"id":"plist_to_json","v":1,"name":"Plist to JSON","summary":"Read an Apple property list, XML or binary (bplist00), as JSON.","category":"data-format","tags":["plist","bplist","apple","macos","ios","json","xml"],"aliases":["P-list Viewer","plist viewer","plist","bplist","binary plist","property list","plutil"],"input":"bytes","output":"json","chunk":"data-format"},{"id":"polybius_square_decode","v":1,"name":"Polybius Square Decode","summary":"Read row and column coordinates in a Polybius square back as letters: 11 is A, 12 is B.","category":"classical-cipher","tags":["aca","key-square","checkerboard"],"aliases":["polybius","polybius square","polybius cipher","checkerboard","grid coordinates"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Polybius square","direction":"decode","with":"polybius_square_encode"},"chunk":"classical"},{"id":"polybius_square_encode","v":1,"name":"Polybius Square Encode","summary":"Write each letter as its row and column in a Polybius square: 11 for A, 12 for B, and so on.","category":"classical-cipher","tags":["aca","key-square","checkerboard"],"aliases":["polybius","polybius square","polybius cipher","checkerboard","grid coordinates"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Polybius square","direction":"encode","with":"polybius_square_decode"},"chunk":"classical"},{"id":"porta","v":1,"name":"Porta","summary":"The Porta cipher: 13 reciprocal alphabets that swap A–M with N–Z, chosen by pairs of key letters.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","reciprocal"],"aliases":["porta cipher","porta encode","porta decode","della porta","bellaso table"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"porta"},"chunk":"classical"},{"id":"portax","v":1,"name":"Portax","summary":"The ACA's Portax: letters paired down the columns of a keyword block, swapped on a slide.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","digraphic","reciprocal"],"aliases":["portax cipher","portax encode","portax decode","porta slide"],"family":"tableau","input":"bytes","output":"bytes","chunk":"classical"},{"id":"power_set","v":1,"name":"Power Set","summary":"Every subset of a list of items, from the empty set to the whole list.","category":"arithmetic","tags":["set","combinatorics","subsets"],"aliases":["subsets","all subsets","powerset","combinations"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"present_decrypt","v":1,"name":"PRESENT Decrypt","summary":"Decrypt PRESENT in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["present","block-cipher","lightweight","iso-29192","cbc"],"aliases":["present","present-80","present-128","present cipher","present decrypt"],"input":"bytes","output":"bytes","pair":{"title":"PRESENT","direction":"decode","with":"present_encrypt"},"chunk":"encryption"},{"id":"present_encrypt","v":1,"name":"PRESENT Encrypt","summary":"Encrypt with PRESENT in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["present","block-cipher","lightweight","iso-29192","cbc"],"aliases":["present","present-80","present-128","present cipher","present encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"present_decrypt"},"pair":{"title":"PRESENT","direction":"encode","with":"present_decrypt"},"chunk":"encryption"},{"id":"previous_prime","v":1,"name":"Previous Prime","summary":"The largest prime less than the input.","category":"arithmetic","tags":["number-theory","primes"],"aliases":["prevprime","previous prime number","closest prime","preceding prime"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"prime_counting_function","v":1,"name":"Prime Counting Function","summary":"π(x): how many primes there are up to x.","category":"arithmetic","tags":["number-theory","primes"],"aliases":["pi(x)","π(x)","prime count","count primes","number of primes below"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"prime_number_cipher_decode","v":1,"name":"Prime Number Cipher Decode","summary":"Turn the first 26 primes back into letters: 2 = A, 3 = B, 5 = C, … 101 = Z.","category":"classical-cipher","tags":["substitution","numbers","primes"],"aliases":["prime cipher","prime numbers cipher","primes to letters","nth prime cipher"],"input":"bytes","output":"bytes","pair":{"title":"Prime Number Cipher","direction":"decode","with":"prime_number_cipher_encode"},"chunk":"math"},{"id":"prime_number_cipher_encode","v":1,"name":"Prime Number Cipher Encode","summary":"Replace each letter with the prime at its place in the alphabet: A = 2, B = 3, C = 5, … Z = 101.","category":"classical-cipher","tags":["substitution","numbers","primes"],"aliases":["prime cipher","prime numbers cipher","letters to primes","nth prime cipher"],"input":"bytes","output":"bytes","pair":{"title":"Prime Number Cipher","direction":"encode","with":"prime_number_cipher_decode"},"chunk":"math"},{"id":"progressive_key_decode","v":1,"name":"Progressive Key Decode","summary":"Decrypt a progressive key: undo the stepping second key, then the periodic keyword.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["progressive key","progressive key cipher","progressive vigenere"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"progressive_key_encode"},"pair":{"title":"Progressive Key","direction":"decode","with":"progressive_key_encode"},"chunk":"classical"},{"id":"progressive_key_encode","v":1,"name":"Progressive Key Encode","summary":"Encrypt with a progressive key: a periodic cipher, then a second key that steps with each period.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["progressive key","progressive key cipher","progressive vigenere"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"progressive_key_decode"},"pair":{"title":"Progressive Key","direction":"encode","with":"progressive_key_decode"},"chunk":"classical"},{"id":"protobuf_decode","v":1,"name":"Protobuf Decode","summary":"Decode Protocol Buffers data to JSON, with or without its .proto schema.","category":"data-format","tags":["protobuf","protocol-buffers","grpc","serialization","binary"],"aliases":["protobuf","protocol buffers","proto decode","decode_raw","protoc --decode_raw"],"input":"bytes","output":"json","pair":{"title":"Protobuf","direction":"decode","with":"protobuf_encode"},"chunk":"data-format"},{"id":"protobuf_encode","v":1,"name":"Protobuf Encode","summary":"Encode JSON as Protocol Buffers data, following a .proto schema.","category":"data-format","tags":["protobuf","protocol-buffers","grpc","serialization","binary"],"aliases":["protobuf","protocol buffers","proto encode","json to protobuf"],"input":"json","output":"bytes","pair":{"title":"Protobuf","direction":"encode","with":"protobuf_decode"},"chunk":"data-format"},{"id":"pseudo_random_integer_generator","v":1,"name":"Pseudo-Random Integer Generator","summary":"Generate random whole numbers between a minimum and a maximum, inclusive.","category":"utility","tags":["random","generator","integer","dice"],"aliases":["Pseudo-Random Integer Generator","random number","random integer","dice roll"],"input":"bytes","output":"text","chunk":"analysis"},{"id":"pseudo_random_number_generator","v":1,"name":"Pseudo-Random Number Generator","summary":"Generate random bytes from the platform's cryptographic random number generator.","category":"utility","tags":["random","generator","bytes","csprng"],"aliases":["Pseudo-Random Number Generator","random bytes","prng","csprng","random key"],"input":"bytes","output":"bytes","chunk":"analysis"},{"id":"pseudo_random_prime_generator","v":1,"name":"Pseudo-Random Prime Generator","summary":"Generate a random prime number with a chosen number of bits.","category":"utility","tags":["random","prime","generator","miller-rabin","rsa"],"aliases":["Pseudo-Random Prime Generator","random prime","generate prime","prime generator"],"input":"bytes","output":"bigint","chunk":"analysis"},{"id":"public_key_from_certificate","v":1,"name":"Public Key from Certificate","summary":"Extract the public key from an X.509 certificate (or a CSR) as a PEM PUBLIC KEY.","category":"data-format","tags":["x509","certificate","public-key","spki","pem","pki"],"aliases":["pubkey from cert","openssl x509 -pubkey","extract public key","spki","certificate public key"],"input":"bytes","output":"text","chunk":"pki"},{"id":"public_key_from_private_key","v":1,"name":"Public Key from Private Key","summary":"Derive the public key from a private key (RSA, EC, Ed25519, X25519, DSA…) as a PEM PUBLIC KEY.","category":"data-format","tags":["public-key","private-key","pkcs8","pkcs1","sec1","rsa","ec","ed25519","pem","pki"],"aliases":["pubkey from privkey","openssl pkey -pubout","derive public key","openssl rsa -pubout","public key"],"input":"bytes","output":"text","chunk":"pki"},{"id":"quagmire_i_decode","v":1,"name":"Quagmire I Decode","summary":"Decrypt Quagmire I: a keyed plaintext alphabet slid against a straight cipher alphabet.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 1","quagmire one","quag one","k1 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_i_encode"},"pair":{"title":"Quagmire I","direction":"decode","with":"quagmire_i_encode"},"chunk":"classical"},{"id":"quagmire_i_encode","v":1,"name":"Quagmire I Encode","summary":"Encrypt with Quagmire I: a keyed plaintext alphabet slid against a straight cipher alphabet.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 1","quagmire one","quag one","k1 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_i_decode"},"pair":{"title":"Quagmire I","direction":"encode","with":"quagmire_i_decode"},"chunk":"classical"},{"id":"quagmire_ii_decode","v":1,"name":"Quagmire II Decode","summary":"Decrypt Quagmire II: the straight alphabet slid against a keyed cipher alphabet.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 2","quagmire two","quag two","k2 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_ii_encode"},"pair":{"title":"Quagmire II","direction":"decode","with":"quagmire_ii_encode"},"chunk":"classical"},{"id":"quagmire_ii_encode","v":1,"name":"Quagmire II Encode","summary":"Encrypt with Quagmire II: the straight alphabet slid against a keyed cipher alphabet.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 2","quagmire two","quag two","k2 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_ii_decode"},"pair":{"title":"Quagmire II","direction":"encode","with":"quagmire_ii_decode"},"chunk":"classical"},{"id":"quagmire_iii_decode","v":1,"name":"Quagmire III Decode","summary":"Decrypt Quagmire III: one keyed alphabet slid against itself.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 3","quagmire three","quag three","k3 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_iii_encode"},"pair":{"title":"Quagmire III","direction":"decode","with":"quagmire_iii_encode"},"chunk":"classical"},{"id":"quagmire_iii_encode","v":1,"name":"Quagmire III Encode","summary":"Encrypt with Quagmire III: one keyed alphabet slid against itself.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 3","quagmire three","quag three","k3 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_iii_decode"},"pair":{"title":"Quagmire III","direction":"encode","with":"quagmire_iii_decode"},"chunk":"classical"},{"id":"quagmire_iv_decode","v":1,"name":"Quagmire IV Decode","summary":"Decrypt Quagmire IV: a keyed plaintext alphabet slid against a differently keyed cipher alphabet.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 4","quagmire four","quag four","k4 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_iv_encode"},"pair":{"title":"Quagmire IV","direction":"decode","with":"quagmire_iv_encode"},"chunk":"classical"},{"id":"quagmire_iv_encode","v":1,"name":"Quagmire IV Encode","summary":"Encrypt with Quagmire IV: a keyed plaintext alphabet slid against a differently keyed cipher alphabet.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","quagmire"],"aliases":["quagmire 4","quagmire four","quag four","k4 periodic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"quagmire_iv_decode"},"pair":{"title":"Quagmire IV","direction":"encode","with":"quagmire_iv_decode"},"chunk":"classical"},{"id":"rabbit","v":1,"name":"Rabbit","summary":"Encrypt or decrypt with the Rabbit stream cipher (RFC 4503, eSTREAM): a 128-bit key and 64-bit IV.","category":"encryption","tags":["rabbit","stream-cipher","rfc4503","estream"],"aliases":["rabbit cipher","rfc 4503","rabbit encrypt","rabbit decrypt"],"input":"bytes","output":"bytes","inverse":{"op":"rabbit"},"chunk":"encryption"},{"id":"ragbaby_decode","v":1,"name":"Ragbaby Decode","summary":"Decrypt the Ragbaby: move each letter back along a keyed alphabet by its number in the text.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["ragbaby","ragbaby cipher","rag baby"],"family":"tableau","input":"bytes","output":"bytes","pair":{"title":"Ragbaby","direction":"decode","with":"ragbaby_encode"},"chunk":"classical"},{"id":"ragbaby_encode","v":1,"name":"Ragbaby Encode","summary":"Encrypt with the Ragbaby: move each letter along a keyed alphabet by its number in the text.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["ragbaby","ragbaby cipher","rag baby"],"family":"tableau","input":"bytes","output":"bytes","pair":{"title":"Ragbaby","direction":"encode","with":"ragbaby_decode"},"chunk":"classical"},{"id":"rail_fence_decode","v":1,"name":"Rail Fence Decode","summary":"Decrypt the rail fence cipher: deal the text back onto the rails and read the zigzag.","category":"classical-cipher","tags":["aca","transposition","zigzag"],"aliases":["railfence","zigzag","Rail Fence Cipher Decode"],"input":"text","output":"text","inverse":{"op":"rail_fence_encode"},"pair":{"title":"Rail Fence","direction":"decode","with":"rail_fence_encode"},"chunk":"classical"},{"id":"rail_fence_encode","v":1,"name":"Rail Fence Encode","summary":"Encrypt with the rail fence cipher: write in a zigzag across rails, then read each rail.","category":"classical-cipher","tags":["aca","transposition","zigzag"],"aliases":["railfence","zigzag","Rail Fence Cipher Encode"],"input":"text","output":"text","inverse":{"op":"rail_fence_decode"},"pair":{"title":"Rail Fence","direction":"encode","with":"rail_fence_decode"},"chunk":"classical"},{"id":"rake","v":1,"name":"RAKE","summary":"Extract a text's key phrases by Rapid Automatic Keyword Extraction, scored.","category":"utility","tags":["keywords","text","nlp","extract"],"aliases":["keyword extraction","key phrases","Rapid Automatic Keyword Extraction","keywords"],"input":"text","output":"table","chunk":"utility"},{"id":"randomize_color_palette","v":1,"name":"Randomize Color Palette","summary":"Give every distinct color a random new one, so colors that look alike become obviously different.","category":"image","tags":["image","pixels","palette","random","steganography","forensics"],"aliases":["randomize colour palette","randomise colour palette","random colour map","random color map"],"input":"image","output":"image","chunk":"image"},{"id":"raw_deflate","v":1,"name":"Raw Deflate","summary":"Compress bytes with DEFLATE (RFC 1951), with no header or checksum.","category":"compression","tags":["deflate","rfc1951","compress"],"aliases":["deflate","deflate raw","deflate-raw","compress"],"input":"bytes","output":"bytes","inverse":{"op":"raw_inflate"},"pair":{"title":"Raw Deflate","direction":"encode","with":"raw_inflate"},"chunk":"compression"},{"id":"raw_inflate","v":1,"name":"Raw Inflate","summary":"Decompress bare DEFLATE data (RFC 1951), with no header or checksum.","category":"compression","tags":["deflate","rfc1951","decompress"],"aliases":["inflate","inflate raw","deflate-raw","gzinflate","decompress"],"input":"bytes","output":"bytes","pair":{"title":"Raw Deflate","direction":"decode","with":"raw_deflate"},"chunk":"compression"},{"id":"rc2_decrypt","v":1,"name":"RC2 Decrypt","summary":"Decrypt RC2 in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["rc2","arc2","block-cipher","rivest","rfc2268","cbc"],"aliases":["rc2","arc2","rc2-cbc","rc2-40","rc2-128","rc2 decrypt"],"input":"bytes","output":"bytes","pair":{"title":"RC2","direction":"decode","with":"rc2_encrypt"},"chunk":"encryption"},{"id":"rc2_encrypt","v":1,"name":"RC2 Encrypt","summary":"Encrypt with RC2 in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["rc2","arc2","block-cipher","rivest","rfc2268","cbc"],"aliases":["rc2","arc2","rc2-cbc","rc2-40","rc2-128","rc2 encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"rc2_decrypt"},"pair":{"title":"RC2","direction":"encode","with":"rc2_decrypt"},"chunk":"encryption"},{"id":"rc4","v":1,"name":"RC4","summary":"Encrypt or decrypt with the RC4 (ARCFOUR) stream cipher.","category":"encryption","tags":["rc4","arcfour","arc4","stream-cipher"],"aliases":["arcfour","arc4","rc4 encrypt","rc4 decrypt","rivest cipher 4"],"input":"bytes","output":"bytes","inverse":{"op":"rc4"},"chunk":"encryption"},{"id":"rc4_drop","v":1,"name":"RC4 Drop","summary":"Encrypt or decrypt with RC4-drop[n]: RC4 that discards the first n keystream bytes.","category":"encryption","tags":["rc4","arcfour","rc4-drop","stream-cipher"],"aliases":["rc4-drop","rc4drop","arcfour drop","rc4-drop[768]"],"input":"bytes","output":"bytes","inverse":{"op":"rc4_drop"},"chunk":"encryption"},{"id":"rc6_decrypt","v":1,"name":"RC6 Decrypt","summary":"Decrypt RC6 in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["rc6","block-cipher","rivest","aes-finalist","cbc"],"aliases":["rc6","rc6-32/20","rc6-cbc","rc6 decrypt"],"input":"bytes","output":"bytes","pair":{"title":"RC6","direction":"decode","with":"rc6_encrypt"},"chunk":"encryption"},{"id":"rc6_encrypt","v":1,"name":"RC6 Encrypt","summary":"Encrypt with RC6 in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["rc6","block-cipher","rivest","aes-finalist","cbc"],"aliases":["rc6","rc6-32/20","rc6-cbc","rc6 encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"rc6_decrypt"},"pair":{"title":"RC6","direction":"encode","with":"rc6_decrypt"},"chunk":"encryption"},{"id":"register","v":1,"name":"Register","summary":"Store parts of the data, by capture group, as $R0, $R1… for later steps' arguments.","category":"flow-control","tags":["flow-control","regex","variable","capture","argument"],"aliases":["Register","variable","store match","capture to variable","$R0"],"input":"text","output":"text","flow":"register","chunk":"flow"},{"id":"regular_expression","v":1,"name":"Regular Expression","summary":"List, highlight or count the matches of a regular expression, or list their capture groups.","category":"utility","tags":["regex","search","match","grep","extract"],"aliases":["Regular expression","regex","regexp","grep -o","match","capture groups"],"input":"text","output":"marked","chunk":"utility"},{"id":"remove_ansi_escape_codes","v":1,"name":"Remove ANSI Escape Codes","summary":"Strip terminal colors, cursor moves, titles and other ANSI/ECMA-48 escape sequences.","category":"utility","tags":["ansi","terminal","escape","color","ecma-48","clean"],"aliases":["Remove ANSI Escape Codes","strip ansi","remove colors","strip color codes","vt100"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"remove_diacritics","v":1,"name":"Remove Diacritics","summary":"Strip accents and other diacritical marks: café, naïve, Łódź become cafe, naive, Lodz.","category":"utility","tags":["unicode","accents","diacritics","normalize","ascii"],"aliases":["Remove Diacritics","strip accents","remove accents","unaccent","deaccent"],"input":"text","output":"text","chunk":"utility"},{"id":"remove_exif","v":1,"name":"Remove EXIF","summary":"Strip EXIF metadata from a JPEG, PNG or WebP file without touching the image data.","category":"image","tags":["image","exif","metadata","privacy","strip","jpeg","png"],"aliases":["strip exif","remove metadata","strip metadata","remove gps"],"input":"bytes","output":"bytes","chunk":"image"},{"id":"remove_line_numbers","v":1,"name":"Remove Line Numbers","summary":"Take the line numbers off the start of each line, with their separators.","category":"utility","tags":["lines","numbers","clean"],"aliases":["Remove line numbers","strip line numbers","unnumber"],"input":"text","output":"text","chunk":"utility"},{"id":"remove_null_bytes","v":1,"name":"Remove Null Bytes","summary":"Delete every zero byte (0x00).","category":"utility","tags":["null","bytes","strip","clean"],"aliases":["Remove null bytes","strip nulls","remove zeros","delete nul"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"remove_whitespace","v":1,"name":"Remove Whitespace","summary":"Delete spaces, tabs, line breaks and other white space; choose which kinds.","category":"utility","tags":["whitespace","spaces","strip","clean"],"aliases":["Remove whitespace","strip whitespace","remove spaces","trim","despace"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"render_image","v":1,"name":"Render Image","summary":"Decode a PNG, JPEG, GIF, BMP or ICO file into an image, picking a GIF frame or icon size.","category":"image","tags":["image","render","decode","png","jpeg","gif","bmp","ico","view"],"aliases":["view image","show image","decode image","display image"],"input":"bytes","output":"image","chunk":"image"},{"id":"render_markdown","v":1,"name":"Render Markdown","summary":"Show Markdown as a formatted document (CommonMark with GitHub tables), safely.","category":"code","tags":["markdown","render","preview","document"],"aliases":["markdown","preview markdown","md","CommonMark","GFM"],"input":"text","output":"text","chunk":"code"},{"id":"render_pdf","v":1,"name":"Render PDF","summary":"Show a PDF file's pages in the PDF view; the output is the file itself.","category":"image","tags":["pdf","render","view","document","pages"],"aliases":["view pdf","show pdf","pdf viewer","open pdf"],"input":"bytes","output":"bytes","chunk":"pdf"},{"id":"replace_smart_characters","v":1,"name":"Replace Smart Characters","summary":"Turn curly quotes, dashes, ellipses and special spaces into their plain ASCII forms.","category":"utility","tags":["quotes","ascii","typography","clean","punctuation"],"aliases":["Escape Smart Characters","smart quotes","curly quotes","straighten quotes","to ascii","dumb quotes"],"input":"text","output":"text","chunk":"utility"},{"id":"resize_image","v":1,"name":"Resize Image","summary":"Scale an image to a size in pixels or percent, keeping its aspect ratio or not.","category":"image","tags":["image","pixels","resize","scale","resample"],"aliases":["scale image","resample","enlarge","shrink","thumbnail","lanczos","bicubic"],"input":"image","output":"image","chunk":"image"},{"id":"return","v":1,"name":"Return","summary":"Stop here: the data so far is the output, and the steps after it don't run.","category":"flow-control","tags":["flow-control","stop","end","exit"],"aliases":["Return","stop","exit","end spell","halt"],"input":"text","output":"text","flow":"return","chunk":"flow"},{"id":"reverse","v":1,"name":"Reverse","summary":"Reverse the order of the characters, bytes or lines.","category":"utility","tags":["reverse","lines","bytes","text","tac"],"aliases":["Reverse","backwards","mirror","tac","rev","flip"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"ripemd","v":1,"name":"RIPEMD","summary":"Compute a RIPEMD digest: RIPEMD-128, RIPEMD-160, RIPEMD-256 or RIPEMD-320.","category":"hashing","tags":["hash","ripemd","digest"],"aliases":["ripemd160","ripemd-160","rmd160","ripemd128","ripemd256","ripemd320"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"rison_decode","v":1,"name":"Rison Decode","summary":"Read Rison, the URL-friendly form of JSON, as JSON.","category":"encoding","tags":["rison","json","url"],"aliases":["rison","o-rison","a-rison","rison to json","kibana url"],"input":"text","output":"json","pair":{"title":"Rison","direction":"decode","with":"rison_encode"},"chunk":"encoding"},{"id":"rison_encode","v":1,"name":"Rison Encode","summary":"Write JSON as Rison, a compact form that needs little escaping in URLs.","category":"encoding","tags":["rison","json","url"],"aliases":["rison","o-rison","a-rison","json to rison","kibana url"],"input":"json","output":"text","inverse":{"op":"rison_decode"},"pair":{"title":"Rison","direction":"encode","with":"rison_decode"},"chunk":"encoding"},{"id":"ror13","v":1,"name":"ROR13","summary":"Compute the ROR13 API hash that shellcode uses to find Windows functions by name.","category":"hashing","tags":["hash","shellcode","malware","windows","api-hashing"],"aliases":["ror13 hash","api hash","shellcode hash","block_api","ror13AddHash32"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"rot13","v":1,"name":"ROT13","summary":"Shift each letter through the alphabet; 13 by default, any amount for a Caesar shift.","category":"classical-cipher","tags":["rot","caesar","substitution"],"aliases":["caesar","rot","shift cipher"],"input":"bytes","output":"bytes","inverse":{"op":"rot13"},"chunk":"classical"},{"id":"rot13_brute_force","v":1,"name":"ROT13 Brute Force","summary":"Try every Caesar shift and rank the results by how much they read like English.","category":"analysis","tags":["rot","caesar","brute-force","cryptanalysis"],"aliases":["ROT13 Brute Force","caesar brute force","caesar cracker","rot brute force"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"rot18","v":1,"name":"ROT18","summary":"ROT13 for letters plus ROT5 for digits; or ROT5 alone, which rotates only the digits.","category":"classical-cipher","tags":["rot","substitution"],"aliases":["rot5","rot 5","rot 18","rot13.5"],"input":"bytes","output":"bytes","inverse":{"op":"rot18"},"chunk":"classical"},{"id":"rot47","v":1,"name":"ROT47","summary":"Rotate the 94 printable ASCII characters by 47, or by any amount.","category":"classical-cipher","tags":["rot","substitution"],"aliases":["rot"],"input":"bytes","output":"bytes","inverse":{"op":"rot47"},"chunk":"classical"},{"id":"rot47_brute_force","v":1,"name":"ROT47 Brute Force","summary":"Rotate the printable ASCII characters by every amount and rank the results by readability.","category":"analysis","tags":["rot","brute-force","cryptanalysis"],"aliases":["ROT47 Brute Force","rot47 cracker","rot brute force"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"rot8000","v":1,"name":"ROT8000","summary":"ROT13 for Unicode: rotate every visible character of the Basic Multilingual Plane by half.","category":"classical-cipher","tags":["rot","unicode","substitution"],"aliases":["rot 8000","rot32768","unicode rot"],"input":"bytes","output":"bytes","inverse":{"op":"rot8000"},"chunk":"classical"},{"id":"rotate_image","v":1,"name":"Rotate Image","summary":"Turn an image clockwise by any angle: exactly for multiples of 90°, interpolated otherwise.","category":"image","tags":["image","pixels","rotate","turn"],"aliases":["turn image","rotate"],"input":"image","output":"image","chunk":"image"},{"id":"rotate_left","v":1,"name":"Rotate left","summary":"Rotate the bits of each byte to the left: bits that leave the top come back at the bottom.","category":"arithmetic","tags":["bitwise","rotate","circular-shift"],"aliases":["rol","circular shift left","barrel shift","rotl"],"input":"bytes","output":"bytes","inverse":{"op":"rotate_right"},"chunk":"arithmetic"},{"id":"rotate_right","v":1,"name":"Rotate right","summary":"Rotate the bits of each byte to the right: bits that leave the bottom come back at the top.","category":"arithmetic","tags":["bitwise","rotate","circular-shift"],"aliases":["ror","circular shift right","barrel shift","rotr"],"input":"bytes","output":"bytes","inverse":{"op":"rotate_left"},"chunk":"arithmetic"},{"id":"route_transposition_decode","v":1,"name":"Route Transposition Decode","summary":"Decrypt a route transposition: fill the block by the reading route, read the writing route.","category":"classical-cipher","tags":["aca","transposition","route","spiral"],"aliases":["route cipher","route transposition","spiral cipher","path cipher","boustrophedon"],"input":"text","output":"text","pair":{"title":"Route transposition","direction":"decode","with":"route_transposition_encode"},"chunk":"classical"},{"id":"route_transposition_encode","v":1,"name":"Route Transposition Encode","summary":"Encrypt by writing the text into a block by one route and reading it off by another.","category":"classical-cipher","tags":["aca","transposition","route","spiral"],"aliases":["route cipher","route transposition","spiral cipher","path cipher","boustrophedon"],"input":"text","output":"text","pair":{"title":"Route transposition","direction":"encode","with":"route_transposition_decode"},"chunk":"classical"},{"id":"rsa_attacks","v":1,"name":"RSA Attacks","summary":"Recover RSA plaintexts and keys from weak numbers: small e, Håstad, common modulus, Wiener, shared or close primes.","category":"arithmetic","tags":["rsa","number-theory","ctf","cryptanalysis"],"aliases":["rsactftool","rsa ctf","rsa cracker","rsa crack","wiener attack","hastad","håstad broadcast attack","common modulus","small e","cube root attack","rsa decrypt p q","rsa cipher"],"input":"text","output":"bytes","chunk":"math"},{"id":"rsa_decrypt","v":1,"name":"RSA Decrypt","summary":"Decrypt with an RSA private key: RSAES-OAEP, RSAES-PKCS1-v1_5 or raw textbook RSA (RFC 8017).","category":"encryption","tags":["rsa","oaep","pkcs1","public-key","asymmetric","textbook-rsa","ctf","rfc8017"],"aliases":["rsa","rsa-oaep","rsaes-oaep","textbook rsa","raw rsa","rsa private key decrypt","openssl pkeyutl -decrypt","rsa ctf"],"input":"bytes","output":"bytes","pair":{"title":"RSA","direction":"decode","with":"rsa_encrypt"},"chunk":"pki"},{"id":"rsa_encrypt","v":1,"name":"RSA Encrypt","summary":"Encrypt with an RSA public key: RSAES-OAEP, RSAES-PKCS1-v1_5 or raw textbook RSA (RFC 8017).","category":"encryption","tags":["rsa","oaep","pkcs1","public-key","asymmetric","textbook-rsa","rfc8017"],"aliases":["rsa","rsa-oaep","rsaes-oaep","rsaes-pkcs1-v1_5","textbook rsa","raw rsa","rsa public key encrypt","openssl pkeyutl -encrypt"],"input":"bytes","output":"bytes","pair":{"title":"RSA","direction":"encode","with":"rsa_decrypt"},"chunk":"pki"},{"id":"rsa_sign","v":1,"name":"RSA Sign","summary":"Sign a message with an RSA private key: RSASSA-PKCS1-v1_5 or RSASSA-PSS, with a choice of hash.","category":"encryption","tags":["rsa","signature","pkcs1","pss","public-key","rfc8017"],"aliases":["rsa signature","rsassa-pkcs1-v1_5","rsassa-pss","rsa-pss","sign","openssl dgst -sign","sha256WithRSAEncryption"],"input":"bytes","output":"bytes","chunk":"pki"},{"id":"rsa_verify","v":1,"name":"RSA Verify","summary":"Check an RSA signature on a message: RSASSA-PKCS1-v1_5 or RSASSA-PSS, with a choice of hash.","category":"encryption","tags":["rsa","signature","verify","pkcs1","pss","public-key","rfc8017"],"aliases":["rsa signature verify","check rsa signature","rsassa-pkcs1-v1_5","rsassa-pss","openssl dgst -verify"],"input":"bytes","output":"text","chunk":"pki"},{"id":"run_arnoldc","v":1,"name":"Run ArnoldC","summary":"Run an ArnoldC program, written in Arnold Schwarzenegger's one-liners (IT'S SHOWTIME …).","category":"code","tags":["arnoldc","arnold","schwarzenegger","esolang","interpreter","ctf"],"aliases":["arnoldc","arnold c","arnold schwarzenegger language","its showtime","arnoldc interpreter"],"family":"esolang","input":"text","output":"text","chunk":"esolang"},{"id":"run_befunge","v":1,"name":"Run Befunge-93","summary":"Run a Befunge-93 program: a two-dimensional stack language on an 80×25 grid.","category":"code","tags":["befunge","esolang","interpreter","2d","ctf"],"aliases":["befunge","befunge-93","befunge interpreter","funge"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_befunge_98","v":1,"name":"Run Befunge-98","summary":"Run a Befunge-98 (Funge-98) program: unbounded Funge-Space, a stack of stacks, k, and threads.","category":"code","tags":["befunge","funge-98","esolang","interpreter","2d","ctf"],"aliases":["befunge-98","befunge 98","funge-98","b98","befunge98 interpreter","concurrent befunge"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_brainfuck","v":1,"name":"Run Brainfuck","summary":"Run a Brainfuck program, or one in Ook!, Spoon, Pikalang or another dialect, and give its output.","category":"code","tags":["brainfuck","esolang","interpreter","ook","ctf"],"aliases":["brainfuck","brainfuck interpreter","brainfuck decode","from brainfuck","bf","ook","ook interpreter","blub","pikalang","alphuck","reversefuck","spoon","binaryfuck","trollscript"],"family":"esolang","input":"text","output":"bytes","pair":{"title":"Brainfuck","direction":"decode","with":"to_brainfuck"},"chunk":"esolang"},{"id":"run_chef","v":1,"name":"Run Chef","summary":"Run a program in Chef, David Morgan-Mar's language whose programs read like recipes.","category":"code","tags":["chef","esolang","interpreter","recipe","ctf"],"aliases":["chef","chef language","chef interpreter","recipe language","hello world souffle"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_cow","v":1,"name":"Run COW","summary":"Run a program in COW, Sean Heber's Brainfuck variant written in moos.","category":"code","tags":["cow","brainfuck","esolang","interpreter","ctf"],"aliases":["cow","cow language","cow interpreter","moo","cow decode"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_deadfish","v":1,"name":"Run Deadfish","summary":"Run a Deadfish program: i, d, s and o on a single number.","category":"code","tags":["deadfish","esolang","interpreter","ctf"],"aliases":["deadfish","deadfish interpreter","deadfish decode","from deadfish"],"family":"esolang","input":"text","output":"text","pair":{"title":"Deadfish","direction":"decode","with":"to_deadfish"},"chunk":"esolang"},{"id":"run_fish","v":1,"name":"Run ><>","summary":"Run a ><> (Fish) program: a two-dimensional stack language with a self-modifying code box.","category":"code","tags":["fish","esolang","interpreter","2d","ctf"],"aliases":["><>","fish","fish language","fish interpreter","fish.py"],"family":"esolang","input":"text","output":"text","chunk":"esolang"},{"id":"run_hexagony","v":1,"name":"Run Hexagony","summary":"Run a Hexagony program: a two-dimensional language on a hexagon, with six instruction pointers.","category":"code","tags":["hexagony","esolang","interpreter","2d","hexagon","ctf"],"aliases":["hexagony","hexagony interpreter","hexagon language"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_intercal","v":1,"name":"Run INTERCAL","summary":"Run an INTERCAL program, with C-INTERCAL's COME FROM, its I/O and its system library.","category":"code","tags":["intercal","c-intercal","esolang","interpreter","ctf"],"aliases":["intercal","c-intercal","ick","come from","intercal interpreter"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_lolcode","v":1,"name":"Run LOLCODE","summary":"Run a LOLCODE program (HAI … KTHXBYE), following the LOLCODE 1.2 specification.","category":"code","tags":["lolcode","esolang","interpreter","ctf"],"aliases":["lolcode","lolcode interpreter","lol code","lolcat","hai kthxbye"],"family":"esolang","input":"text","output":"text","chunk":"esolang"},{"id":"run_malbolge","v":1,"name":"Run Malbolge","summary":"Run a Malbolge program, Ben Olmstead's language designed to be as hard to program as possible.","category":"code","tags":["malbolge","esolang","interpreter","ternary","ctf"],"aliases":["malbolge","malbolge interpreter","malbolge decode"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_piet","v":1,"name":"Run Piet","summary":"Run a Piet program: an image whose blocks of color are the code (David Morgan-Mar's language).","category":"code","tags":["piet","esolang","interpreter","image","ctf"],"aliases":["piet","piet interpreter","npiet","color program"],"family":"esolang","input":"image","output":"bytes","chunk":"esolang"},{"id":"run_rockstar","v":1,"name":"Run Rockstar","summary":"Run a Rockstar 1.0 program, the language whose programs read like 1980s rock lyrics.","category":"code","tags":["rockstar","esolang","interpreter","lyrics","ctf"],"aliases":["rockstar","rockstar language","rockstar interpreter","satriani","rock lyrics"],"family":"esolang","input":"text","output":"text","chunk":"esolang"},{"id":"run_shakespeare","v":1,"name":"Run Shakespeare","summary":"Run a program in the Shakespeare Programming Language, written as a play.","category":"code","tags":["shakespeare","spl","esolang","interpreter","ctf"],"aliases":["shakespeare","spl","shakespeare programming language","shakespeare interpreter"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_unlambda","v":1,"name":"Run Unlambda","summary":"Run an Unlambda program: combinatory logic (s, k, i) with output, input, promises and call/cc.","category":"code","tags":["unlambda","esolang","interpreter","combinatory-logic","ski","ctf"],"aliases":["unlambda","unlambda interpreter","ski calculus","combinatory logic"],"family":"esolang","input":"text","output":"bytes","chunk":"esolang"},{"id":"run_whitespace","v":1,"name":"Run Whitespace","summary":"Run a Whitespace program, written only in spaces, tabs and line feeds.","category":"code","tags":["whitespace","esolang","interpreter","stack","ctf"],"aliases":["whitespace","whitespace language","whitespace interpreter","whitespace decode"],"family":"esolang","input":"text","output":"text","pair":{"title":"Whitespace","direction":"decode","with":"to_whitespace"},"chunk":"esolang"},{"id":"running_key_decode","v":1,"name":"Running Key Decode","summary":"Decrypt a running key: undo each letter with the next letter of a long key text.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["running key","running key cipher","book cipher key"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"running_key_encode"},"pair":{"title":"Running Key","direction":"decode","with":"running_key_encode"},"chunk":"classical"},{"id":"running_key_encode","v":1,"name":"Running Key Encode","summary":"Encrypt with a running key: a passage of text as long as the message is the key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["running key","running key cipher","book cipher key"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"running_key_decode"},"pair":{"title":"Running Key","direction":"encode","with":"running_key_decode"},"chunk":"classical"},{"id":"salsa20","v":1,"name":"Salsa20","summary":"Encrypt or decrypt with Bernstein's Salsa20 stream cipher (Salsa20/20, /12 or /8).","category":"encryption","tags":["salsa20","stream-cipher","bernstein","estream"],"aliases":["salsa","salsa20/20","salsa20/12","salsa20/8","salsa20 encrypt","salsa20 decrypt"],"input":"bytes","output":"bytes","inverse":{"op":"salsa20"},"chunk":"encryption"},{"id":"scan_for_embedded_files","v":1,"name":"Scan for Embedded Files","summary":"Find files hidden inside the input: every file signature at every offset, with its length where known.","category":"analysis","tags":["magic","binwalk","carving","embedded","forensics","signature","steganography"],"aliases":["binwalk","find embedded files","file carving","foremost","scan for files"],"input":"bytes","output":"table","chunk":"forensics"},{"id":"scatter_chart","v":1,"name":"Scatter chart","summary":"Plot records of two numbers as points, optionally grouped by a third column.","category":"analysis","tags":["chart","plot","visualization","statistics"],"aliases":["Scatter chart","scatter plot","xy plot","points plotter","plot points"],"input":"text","output":"json","chunk":"charts"},{"id":"scry","v":1,"name":"Scry","summary":"Peel layers of encoding, compression and classical ciphers automatically; list the spells that decode the data.","category":"analysis","tags":["auto-solve","ctf","identify","decode","magic","brute-force","cryptanalysis"],"aliases":["Magic","auto decode","ctf solver","identify encoding","what is this","cipher identifier"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"scrypt","v":1,"name":"Scrypt","summary":"Derive a key from a password with scrypt (RFC 7914), the memory-hard KDF.","category":"hashing","tags":["scrypt","kdf","password","memory-hard","rfc7914"],"aliases":["scrypt","scrypt kdf","password hash"],"input":"bytes","output":"text","chunk":"encryption"},{"id":"scytale_decode","v":1,"name":"Scytale Decode","summary":"Decrypt a scytale: wind the strip round a rod with the right number of faces.","category":"classical-cipher","tags":["transposition","scytale","sparta"],"aliases":["scytale","skytale","spartan scytale","rod cipher"],"input":"text","output":"text","pair":{"title":"Scytale","direction":"decode","with":"scytale_encode"},"chunk":"classical"},{"id":"scytale_encode","v":1,"name":"Scytale Encode","summary":"Encrypt with the Spartan scytale: write along a rod's faces, then unwind the strip.","category":"classical-cipher","tags":["transposition","scytale","sparta"],"aliases":["scytale","skytale","spartan scytale","rod cipher"],"input":"text","output":"text","inverse":{"op":"scytale_decode"},"pair":{"title":"Scytale","direction":"encode","with":"scytale_decode"},"chunk":"classical"},{"id":"select_file","v":1,"name":"Select file","summary":"Take one file's content from a list of files: by its position, its name or a glob.","category":"utility","tags":["files","archive","select","glob","extract"],"aliases":["pick file","choose file","extract file","file by name","get file"],"input":"files","output":"bytes","chunk":"utility"},{"id":"series_chart","v":1,"name":"Series chart","summary":"Draw records of a series name, x and y as lines, one per series.","category":"analysis","tags":["chart","plot","visualization","time-series"],"aliases":["Series chart","line chart","line graph","time series","run sequence plot"],"input":"text","output":"json","chunk":"charts"},{"id":"set_difference","v":1,"name":"Set Difference","summary":"The items of the first sample that aren't in any of the others.","category":"arithmetic","tags":["set","difference"],"aliases":["difference","relative complement","minus","except","∖"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"set_intersection","v":1,"name":"Set Intersection","summary":"The items that appear in every sample.","category":"arithmetic","tags":["set","intersection"],"aliases":["intersection","common items","in both","∩"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"set_union","v":1,"name":"Set Union","summary":"Every item that appears in any of the samples, once each.","category":"arithmetic","tags":["set","union"],"aliases":["union","merge lists","combine lists","∪"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"sha0","v":1,"name":"SHA-0","summary":"Compute the 160-bit SHA-0 digest, the 1993 predecessor of SHA-1.","category":"hashing","tags":["hash","sha","fips180","digest"],"aliases":["SHA0","sha"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"sha1","v":1,"name":"SHA-1","summary":"Compute the 160-bit SHA-1 digest of the input.","category":"hashing","tags":["hash","sha","fips180","digest"],"aliases":["SHA1","sha1sum","sha-160"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"sha2","v":1,"name":"SHA-2","summary":"Compute a SHA-2 digest: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 or SHA-512/256.","category":"hashing","tags":["hash","sha","sha2","fips180","digest"],"aliases":["SHA2","sha256","sha-256","sha224","sha-224","sha384","sha-384","sha512","sha-512","sha512/224","sha512/256","sha256sum","sha512sum"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"sha3","v":1,"name":"SHA-3","summary":"Compute a SHA-3 digest: SHA3-224, SHA3-256, SHA3-384 or SHA3-512.","category":"hashing","tags":["hash","sha3","keccak","fips202","sponge","digest"],"aliases":["SHA3","sha3-256","sha3-512","sha3-224","sha3-384"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"shake","v":1,"name":"SHAKE","summary":"Compute SHAKE128 or SHAKE256, the SHA-3 extendable-output functions, to any length.","category":"hashing","tags":["hash","sha3","shake","xof","fips202","sponge"],"aliases":["Shake","shake128","shake256","xof","extendable output"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"shamir_secret_recover","v":1,"name":"Shamir Secret Recover","summary":"Recover a secret from Shamir secret-sharing shares, modulo a prime or byte by byte in GF(256).","category":"arithmetic","tags":["secret-sharing","polynomials","number-theory"],"aliases":["shamir","sss","secret sharing","shamir combine","shamir's secret sharing","threshold secret"],"input":"text","output":"bytes","chunk":"math"},{"id":"sharpen_image","v":1,"name":"Sharpen Image","summary":"Sharpen an image by unsharp masking: boost each pixel's difference from a blurred copy.","category":"image","tags":["image","pixels","sharpen","unsharp-mask"],"aliases":["unsharp mask","sharpen","usm","enhance edges"],"input":"image","output":"image","chunk":"image"},{"id":"show_base64_offsets","v":1,"name":"Show Base64 Offsets","summary":"Show the Base64 a string becomes at each of the three byte offsets, and which characters are fixed.","category":"encoding","tags":["base64","search","offset","forensics"],"aliases":["Show Base64 offsets","base64 offsets","base64 search strings","base64 alignment"],"input":"bytes","output":"marked","chunk":"encoding"},{"id":"show_on_map","v":1,"name":"Show on map","summary":"Plot points given as coordinates on a world map, drawn offline.","category":"analysis","tags":["geo","gps","map","coordinates","visualization"],"aliases":["Show on map","map","plot coordinates","world map","gps map"],"input":"text","output":"json","chunk":"charts"},{"id":"shuffle","v":1,"name":"Shuffle","summary":"Put lines or other items in a random order.","category":"utility","tags":["shuffle","random","lines","list","permutation"],"aliases":["Shuffle","randomize","random order","shuf"],"input":"text","output":"text","chunk":"utility"},{"id":"sigaba_decode","v":1,"name":"SIGABA Decode","summary":"Decrypt SIGABA (ECM Mark II) ciphertext; deciphered Zs print as spaces.","category":"classical-cipher","tags":["sigaba","ecm-mark-ii","rotor-machine","ww2"],"aliases":["SIGABA","SIGABA decrypt","ECM Mark II","CSP-889","CSP-2900","M-134-C"],"family":"machine","input":"bytes","output":"bytes","pair":{"title":"SIGABA","direction":"decode","with":"sigaba_encode"},"chunk":"machines"},{"id":"sigaba_encode","v":1,"name":"SIGABA Encode","summary":"Encrypt with SIGABA (ECM Mark II), the US rotor machine whose cipher rotors move irregularly.","category":"classical-cipher","tags":["sigaba","ecm-mark-ii","rotor-machine","ww2"],"aliases":["SIGABA","SIGABA encrypt","ECM Mark II","CSP-889","CSP-2900","M-134-C"],"family":"machine","input":"bytes","output":"bytes","pair":{"title":"SIGABA","direction":"encode","with":"sigaba_decode"},"chunk":"machines"},{"id":"sleep","v":1,"name":"Sleep","summary":"Pass the data through unchanged. It doesn't wait: it's here so CyberChef recipes with Sleep still load.","category":"utility","tags":["identity","cyberchef"],"aliases":["wait","delay","pause","no-op"],"input":"bytes","output":"bytes","inverse":{"op":"sleep"},"chunk":"utility"},{"id":"slidefair_decode","v":1,"name":"Slidefair Decode","summary":"Decrypt pairs of letters from the Slidefair: a plain alphabet over a key letter's tableau row.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","digraphic"],"aliases":["slidefair","slidefair cipher","slide fair"],"family":"tableau","input":"bytes","output":"bytes","pair":{"title":"Slidefair","direction":"decode","with":"slidefair_encode"},"chunk":"classical"},{"id":"slidefair_encode","v":1,"name":"Slidefair Encode","summary":"Encrypt pairs of letters with the Slidefair: a plain alphabet over a key letter's tableau row.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau","digraphic"],"aliases":["slidefair","slidefair cipher","slide fair"],"family":"tableau","input":"bytes","output":"bytes","pair":{"title":"Slidefair","direction":"encode","with":"slidefair_decode"},"chunk":"classical"},{"id":"sm2_decrypt","v":1,"name":"SM2 Decrypt","summary":"Decrypt SM2 ciphertext (GB/T 32918.4) with the private key: C1 ‖ C3 ‖ C2, C1 ‖ C2 ‖ C3 or DER.","category":"encryption","tags":["sm2","ecc","public-key","asymmetric","chinese","guomi","gb-t-32918"],"aliases":["sm2","sm2 decryption","guomi","shangmi","国密","sm2 private key decrypt"],"input":"bytes","output":"bytes","pair":{"title":"SM2","direction":"decode","with":"sm2_encrypt"},"chunk":"pki"},{"id":"sm2_encrypt","v":1,"name":"SM2 Encrypt","summary":"Encrypt with an SM2 public key (GB/T 32918.4), writing C1 ‖ C3 ‖ C2, C1 ‖ C2 ‖ C3 or DER.","category":"encryption","tags":["sm2","ecc","public-key","asymmetric","chinese","guomi","gb-t-32918"],"aliases":["sm2","sm2 encryption","guomi","shangmi","国密","sm2 public key encrypt"],"input":"bytes","output":"bytes","pair":{"title":"SM2","direction":"encode","with":"sm2_decrypt"},"chunk":"pki"},{"id":"sm2_sign","v":1,"name":"SM2 Sign","summary":"Sign a message with an SM2 private key (GB/T 32918.2), with SM3 and the signer's ID.","category":"encryption","tags":["sm2","ecc","signature","sm3","chinese","guomi","gb-t-32918"],"aliases":["sm2 signature","sm2 sign","sm2withsm3","guomi signature","国密签名"],"input":"bytes","output":"bytes","chunk":"pki"},{"id":"sm2_verify","v":1,"name":"SM2 Verify","summary":"Check an SM2 signature (GB/T 32918.2) on a message with the signer's public key and ID.","category":"encryption","tags":["sm2","ecc","signature","verify","sm3","chinese","guomi","gb-t-32918"],"aliases":["sm2 signature verify","sm2withsm3","check sm2 signature","国密验签"],"input":"bytes","output":"text","chunk":"pki"},{"id":"sm3","v":1,"name":"SM3","summary":"Compute the 256-bit SM3 digest, China's national hash standard.","category":"hashing","tags":["hash","sm3","gb-t-32905","digest"],"aliases":["sm3 hash","shangmi 3"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"sm4_decrypt","v":1,"name":"SM4 Decrypt","summary":"Decrypt SM4 in CBC, CFB, OFB, CTR, GCM or ECB mode.","category":"encryption","tags":["sm4","sms4","block-cipher","shangmi","china","gcm"],"aliases":["sm4","sms4","sm4-cbc","sm4-gcm","gb/t 32907","sm4 decrypt"],"input":"bytes","output":"bytes","pair":{"title":"SM4","direction":"decode","with":"sm4_encrypt"},"chunk":"encryption"},{"id":"sm4_encrypt","v":1,"name":"SM4 Encrypt","summary":"Encrypt with SM4 in CBC, CFB, OFB, CTR, GCM or ECB mode.","category":"encryption","tags":["sm4","sms4","block-cipher","shangmi","china","gcm"],"aliases":["sm4","sms4","sm4-cbc","sm4-gcm","gb/t 32907","sm4 encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"sm4_decrypt"},"pair":{"title":"SM4","direction":"encode","with":"sm4_decrypt"},"chunk":"encryption"},{"id":"snefru","v":1,"name":"Snefru","summary":"Compute a Snefru digest (128 or 256 bits), Ralph Merkle's 1990 Xerox Secure Hash Function.","category":"hashing","tags":["hash","snefru","xerox","digest"],"aliases":["snefru128","snefru-128","snefru256","snefru-256","xerox secure hash function","merkle hash"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"solve_columnar","v":1,"name":"Solve Columnar Transposition","summary":"Break a columnar transposition (complete or incomplete) of up to twelve columns: the column order whose rows read best.","category":"analysis","tags":["cryptanalysis","solver","transposition","columnar","aca"],"aliases":["columnar solver","transposition solver","break columnar transposition","columnar cracker"],"input":"text","output":"table","chunk":"analysis"},{"id":"solve_linear_congruences","v":1,"name":"Solve Linear Congruences","summary":"Solve a·x ≡ b (mod m), or a system of such congruences, for x.","category":"arithmetic","tags":["number-theory","modular","equations"],"aliases":["linear congruence","modular equation","modular equation solver","solve mod","ax = b mod m","modulo n calculator"],"input":"text","output":"text","chunk":"math"},{"id":"solve_linear_system","v":1,"name":"Solve Linear System","summary":"Solve A·x = b for x, exactly or modulo n, by Gaussian elimination.","category":"arithmetic","tags":["matrices","linear-algebra","equations"],"aliases":["gaussian elimination","linear equations","system of equations","rref","row reduce","ax = b"],"input":"text","output":"text","chunk":"math"},{"id":"solve_playfair","v":1,"name":"Solve Playfair","summary":"Break a Playfair cipher by simulated annealing over key squares, within a counted budget of tries.","category":"analysis","tags":["cryptanalysis","solver","playfair","key-square","aca","simulated-annealing"],"aliases":["playfair solver","playfair cracker","break playfair"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"solve_substitution","v":1,"name":"Solve Substitution","summary":"Break a monoalphabetic substitution (Aristocrat or Patristocrat) by hill-climbing on English quadgrams.","category":"analysis","tags":["cryptanalysis","solver","monoalphabetic","substitution","aca","hill-climbing"],"aliases":["substitution solver","aristocrat solver","patristocrat solver","cryptogram solver","monoalphabetic solver","quipqiup"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"solve_vigenere","v":1,"name":"Solve Vigenère","summary":"Break a Vigenère, Beaufort, Variant, Gronsfeld, Porta, autokey or Quagmire I cipher: the period, then the key.","category":"analysis","tags":["cryptanalysis","solver","polyalphabetic","vigenere","aca","kasiski"],"aliases":["vigenere solver","vigenere cracker","beaufort solver","autokey solver","porta solver","gronsfeld solver","break vigenere"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"sort","v":1,"name":"Sort","summary":"Sort lines or other items: alphabetically, ignoring case, by number, hex value or length.","category":"utility","tags":["sort","lines","order","list"],"aliases":["Sort","sort lines","order","alphabetize","sort -n"],"input":"text","output":"text","chunk":"utility"},{"id":"split","v":1,"name":"Split","summary":"Split text on one delimiter and join the pieces with another: commas to lines and so on.","category":"utility","tags":["split","join","delimiter","list","text"],"aliases":["Split","join","explode","tokenize","replace delimiter","tr"],"input":"text","output":"text","chunk":"utility"},{"id":"split_color_channels","v":1,"name":"Split Color Channels","summary":"Split an image into one PNG per channel: red, green, blue, and optionally alpha.","category":"image","tags":["image","pixels","channels","rgb","steganography","forensics"],"aliases":["split colour channels","color channels","rgb channels"],"input":"image","output":"files","chunk":"image"},{"id":"sql_beautify","v":1,"name":"SQL Beautify","summary":"Lay SQL out clause by clause, with lists and conditions one item per line and subqueries indented.","category":"code","tags":["sql","beautify","format","pretty-print","database","query"],"aliases":["sql format","sql formatter","pretty print sql","prettify sql","format query"],"input":"text","output":"text","chunk":"code"},{"id":"sql_minify","v":1,"name":"SQL Minify","summary":"Remove comments and every space SQL doesn't need, keeping strings and names exactly as written.","category":"code","tags":["sql","minify","compress","database","query"],"aliases":["sql compress","compress sql","minify sql","sql one line"],"input":"text","output":"text","chunk":"code"},{"id":"ssdeep","v":1,"name":"SSDEEP","summary":"Compute the ssdeep fuzzy hash (CTPH) of the input, which finds inputs that are similar rather than identical.","category":"hashing","tags":["hash","fuzzy-hash","ctph","ssdeep","spamsum","similarity","forensics"],"aliases":["CTPH","context triggered piecewise hash","context triggered piecewise hashing","fuzzy hash","spamsum","ssdeep hash"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"standard_deviation","v":1,"name":"Standard Deviation","summary":"How spread out a list of numbers is: the population or the sample standard deviation.","category":"arithmetic","tags":["arithmetic","statistics","variance"],"aliases":["stdev","std dev","sd","sigma","pstdev"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"straddling_checkerboard_decode","v":1,"name":"Straddling Checkerboard Decode","summary":"Read the digits of a straddling checkerboard back as text: one digit or two per letter.","category":"classical-cipher","tags":["key-square","fractionating","numeric","vic"],"aliases":["straddling checkerboard","straddling checkerboard cipher","vic","monome-binome","checkerboard"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Straddling checkerboard","direction":"decode","with":"straddling_checkerboard_encode"},"chunk":"classical"},{"id":"straddling_checkerboard_encode","v":1,"name":"Straddling Checkerboard Encode","summary":"Turn text into digits with a straddling checkerboard, as in the VIC cipher: one digit or two per letter.","category":"classical-cipher","tags":["key-square","fractionating","numeric","vic"],"aliases":["straddling checkerboard","straddling checkerboard cipher","vic","monome-binome","checkerboard"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Straddling checkerboard","direction":"encode","with":"straddling_checkerboard_decode"},"chunk":"classical"},{"id":"streebog","v":1,"name":"Streebog","summary":"Compute a Streebog (GOST R 34.11-2012) digest, 256 or 512 bits long.","category":"hashing","tags":["hash","streebog","gost","rfc6986","digest"],"aliases":["GOST R 34.11-2012","GOST 34.11-2012","GOST 2012","Stribog","streebog256","streebog512"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"strings","v":1,"name":"Strings","summary":"List the runs of printable characters in binary data, like the Unix strings command.","category":"utility","tags":["strings","binary","extract","forensics","reverse-engineering"],"aliases":["Strings","strings -e","printable strings","extract strings","binutils strings"],"input":"bytes","output":"text","chunk":"utility"},{"id":"strip_ethernet_header","v":1,"name":"Strip Ethernet header","summary":"Remove an Ethernet frame's MAC header, VLAN tags and any LLC/SNAP header, leaving the payload.","category":"networking","tags":["ethernet","packet","pcap","vlan","strip","payload"],"aliases":["remove ethernet header","ethernet payload","strip mac header"],"input":"bytes","output":"bytes","chunk":"networking"},{"id":"strip_html_tags","v":1,"name":"Strip HTML Tags","summary":"Remove HTML tags, comments and doctypes, keeping the text between them.","category":"utility","tags":["html","tags","strip","markup","web"],"aliases":["Strip HTML tags","remove html tags","remove tags","strip tags","html strip"],"input":"text","output":"text","chunk":"utility"},{"id":"strip_http_headers","v":1,"name":"Strip HTTP headers","summary":"Remove an HTTP/1.1 request's or response's start line and header fields, leaving the body.","category":"networking","tags":["http","headers","strip","body","response","request"],"aliases":["remove http headers","http body","strip headers"],"input":"bytes","output":"bytes","chunk":"networking"},{"id":"strip_ipv4_header","v":1,"name":"Strip IPv4 header","summary":"Remove an IPv4 packet's header and options, leaving its payload, cut at the total length.","category":"networking","tags":["ipv4","ip","packet","strip","payload","pcap"],"aliases":["remove ip header","ip payload","strip ip header"],"input":"bytes","output":"bytes","chunk":"networking"},{"id":"strip_tcp_header","v":1,"name":"Strip TCP header","summary":"Remove a TCP segment's header and options, leaving the data it carries.","category":"networking","tags":["tcp","packet","strip","payload","pcap"],"aliases":["remove tcp header","tcp payload","tcp data"],"input":"bytes","output":"bytes","chunk":"networking"},{"id":"strip_udp_header","v":1,"name":"Strip UDP header","summary":"Remove a UDP datagram's 8-byte header, leaving its data, cut at the length field.","category":"networking","tags":["udp","packet","strip","payload","pcap"],"aliases":["remove udp header","udp payload","udp data"],"input":"bytes","output":"bytes","chunk":"networking"},{"id":"sub","v":1,"name":"SUB","summary":"Subtract a key from each byte, modulo 256, repeating the key as needed.","category":"arithmetic","tags":["bitwise","subtract","modular"],"aliases":["subtract key","byte subtract","subtraction","minus"],"input":"bytes","output":"bytes","inverse":{"op":"add"},"chunk":"arithmetic"},{"id":"subsection","v":1,"name":"Subsection","summary":"Run the steps after it only on the parts that match a regular expression, up to a Merge.","category":"flow-control","tags":["flow-control","regex","match","section","part"],"aliases":["Subsection","run on matches","only matches","regex section"],"input":"text","output":"text","flow":"subsection","chunk":"flow"},{"id":"substitute","v":1,"name":"Substitute","summary":"Replace each character of one alphabet with the character in the same place in another.","category":"classical-cipher","tags":["substitution","monoalphabetic","alphabet"],"aliases":["simple substitution","monoalphabetic substitution","translate","tr"],"input":"bytes","output":"bytes","chunk":"classical"},{"id":"subtract","v":1,"name":"Subtract","summary":"Subtract the rest of a list of numbers from the first, exactly.","category":"arithmetic","tags":["arithmetic","subtract","difference"],"aliases":["minus","subtraction","difference"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"sum","v":1,"name":"Sum","summary":"Add up a list of numbers, exactly.","category":"arithmetic","tags":["arithmetic","sum","total"],"aliases":["add numbers","total","addition","plus"],"input":"text","output":"decimal","chunk":"arithmetic"},{"id":"sum_of_divisors","v":1,"name":"Sum of Divisors","summary":"σₖ(n): the sum of the kth powers of n's divisors; σ₀ counts them, σ₁ adds them up.","category":"arithmetic","tags":["number-theory","divisors"],"aliases":["sigma","σ","divisor function","number of divisors","tau","aliquot sum"],"input":"bigint","output":"bigint","chunk":"math"},{"id":"swap_case","v":1,"name":"Swap Case","summary":"Turn capitals into small letters and small letters into capitals.","category":"utility","tags":["case","unicode","text"],"aliases":["Swap case","invert case","toggle case"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"swap_endianness","v":1,"name":"Swap Endianness","summary":"Reverse the byte order within each word of 2, 4, 8 or any number of bytes.","category":"encoding","tags":["endianness","byte-order","bytes"],"aliases":["swap endianness","byte swap","bswap","endian","reverse bytes"],"input":"bytes","output":"bytes","chunk":"encoding"},{"id":"symmetric_difference","v":1,"name":"Symmetric Difference","summary":"The items that are in one sample but not the other.","category":"arithmetic","tags":["set","difference"],"aliases":["disjunctive union","exclusive","in either but not both","△"],"input":"text","output":"text","chunk":"arithmetic"},{"id":"syntax_highlighter","v":1,"name":"Syntax Highlighter","summary":"Mark the keywords, strings, comments and other tokens of source code in a chosen language.","category":"code","tags":["code","highlight","syntax","format"],"aliases":["Syntax highlighter","highlight","code colouring","pretty print","hljs"],"input":"text","output":"marked","chunk":"code"},{"id":"tail","v":1,"name":"Tail","summary":"Keep the last lines or other items: the last 10 by default, or all but the first few.","category":"utility","tags":["tail","lines","last","list"],"aliases":["Tail","last lines","bottom"],"input":"text","output":"text","chunk":"utility"},{"id":"take_bytes","v":1,"name":"Take Bytes","summary":"Keep a range of bytes, given by its start offset and length; drop the rest.","category":"utility","tags":["bytes","slice","substring","extract"],"aliases":["Take bytes","slice","substring","byte range","extract bytes"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"take_nth_bytes","v":1,"name":"Take Nth Bytes","summary":"Keep every nth byte, from a starting offset: every other byte, every fourth…","category":"utility","tags":["bytes","interleave","stride","extract"],"aliases":["Take nth bytes","every nth byte","stride","deinterleave"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"tar","v":1,"name":"Tar","summary":"Put files in a tar archive (POSIX ustar or pax); plain input becomes one named file.","category":"compression","tags":["tar","ustar","pax","archive","posix","files"],"aliases":["tarball","ustar","archive","tape archive","tar files"],"input":"files","output":"bytes","chunk":"compression"},{"id":"tea_decrypt","v":1,"name":"TEA Decrypt","summary":"Decrypt TEA in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["tea","tiny-encryption-algorithm","block-cipher","wheeler-needham","cbc"],"aliases":["tea","tiny encryption algorithm","tea-cbc","tea decrypt"],"input":"bytes","output":"bytes","pair":{"title":"TEA","direction":"decode","with":"tea_encrypt"},"chunk":"encryption"},{"id":"tea_encrypt","v":1,"name":"TEA Encrypt","summary":"Encrypt with TEA in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["tea","tiny-encryption-algorithm","block-cipher","wheeler-needham","cbc"],"aliases":["tea","tiny encryption algorithm","tea-cbc","tea encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"tea_decrypt"},"pair":{"title":"TEA","direction":"encode","with":"tea_decrypt"},"chunk":"encryption"},{"id":"template","v":1,"name":"Template","summary":"Fill a Handlebars (or Mustache) template with the input JSON.","category":"code","tags":["template","handlebars","mustache","json","render"],"aliases":["handlebars","mustache","render template","json to text","fill template"],"input":"json","output":"text","chunk":"code"},{"id":"text_encoding_brute_force","v":1,"name":"Text Encoding Brute Force","summary":"Read the input in every character encoding, or write it in every one, ranked by readability.","category":"analysis","tags":["charset","encoding","mojibake","brute-force","utf-16"],"aliases":["Text Encoding Brute Force","charset brute force","guess encoding","fix mojibake"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"to_base","v":1,"name":"To Base","summary":"Write a whole number in any base from 2 to 36.","category":"encoding","tags":["radix","base-n","number"],"aliases":["radix","base n","base36","number base","convert base"],"input":"bigint","output":"text","inverse":{"op":"from_base"},"pair":{"title":"Base","direction":"encode","with":"from_base"},"chunk":"encoding"},{"id":"to_base100","v":1,"name":"To Base100","summary":"Encode each byte as one of 256 emoji (Base💯).","category":"encoding","tags":["base100","emoji"],"aliases":["base100 encode","base💯","emoji encode","emoji encoding"],"input":"bytes","output":"text","inverse":{"op":"from_base100"},"pair":{"title":"Base100","direction":"encode","with":"from_base100"},"chunk":"encoding"},{"id":"to_base32","v":1,"name":"To Base32","summary":"Encode bytes as Base32 text.","category":"encoding","tags":["base32","rfc4648"],"aliases":["b32","base32 encode"],"input":"bytes","output":"text","inverse":{"op":"from_base32"},"pair":{"title":"Base32","direction":"encode","with":"from_base32"},"chunk":"encoding"},{"id":"to_base32768","v":1,"name":"To Base32768","summary":"Encode bytes as Base32768: 15 bits in every character, each one UTF-16 code unit.","category":"encoding","tags":["base32768","unicode","utf-16"],"aliases":["base32768 encode","b32768"],"input":"bytes","output":"text","inverse":{"op":"from_base32768"},"pair":{"title":"Base32768","direction":"encode","with":"from_base32768"},"chunk":"encoding"},{"id":"to_base45","v":1,"name":"To Base45","summary":"Encode bytes as Base45 text, as in EU Digital COVID Certificate QR codes.","category":"encoding","tags":["base45","qr"],"aliases":["base45 encode"],"input":"bytes","output":"text","inverse":{"op":"from_base45"},"pair":{"title":"Base45","direction":"encode","with":"from_base45"},"chunk":"encoding"},{"id":"to_base58","v":1,"name":"To Base58","summary":"Encode bytes as Base58 text, as in Bitcoin addresses and IPFS hashes.","category":"encoding","tags":["base58","bitcoin"],"aliases":["base58 encode"],"input":"bytes","output":"text","inverse":{"op":"from_base58"},"pair":{"title":"Base58","direction":"encode","with":"from_base58"},"chunk":"encoding"},{"id":"to_base58check","v":1,"name":"To Base58Check","summary":"Encode bytes as Base58Check: Base58 with a version prefix and a 4-byte checksum.","category":"encoding","tags":["base58","base58check","bitcoin","checksum"],"aliases":["base58check encode","bitcoin address","wif"],"input":"bytes","output":"text","inverse":{"op":"from_base58check"},"pair":{"title":"Base58Check","direction":"encode","with":"from_base58check"},"chunk":"encoding"},{"id":"to_base62","v":1,"name":"To Base62","summary":"Encode bytes as Base62 text: letters and digits only.","category":"encoding","tags":["base62"],"aliases":["base62 encode","b62"],"input":"bytes","output":"text","inverse":{"op":"from_base62"},"pair":{"title":"Base62","direction":"encode","with":"from_base62"},"chunk":"encoding"},{"id":"to_base64","v":1,"name":"To Base64","summary":"Encode bytes as Base64 text.","category":"encoding","tags":["base64","rfc4648"],"aliases":["b64","base64 encode"],"input":"bytes","output":"text","inverse":{"op":"from_base64"},"pair":{"title":"Base64","direction":"encode","with":"from_base64"},"chunk":"encoding"},{"id":"to_base65536","v":1,"name":"To Base65536","summary":"Encode bytes as Base65536: two bytes in every character, for channels that count characters.","category":"encoding","tags":["base65536","unicode"],"aliases":["base65536 encode","b65536"],"input":"bytes","output":"text","inverse":{"op":"from_base65536"},"pair":{"title":"Base65536","direction":"encode","with":"from_base65536"},"chunk":"encoding"},{"id":"to_base85","v":1,"name":"To Base85","summary":"Encode bytes as Base85 text: Ascii85, Z85 or the RFC 1924 alphabet.","category":"encoding","tags":["base85","ascii85","z85"],"aliases":["ascii85","z85","b85"],"input":"bytes","output":"text","inverse":{"op":"from_base85"},"pair":{"title":"Base85","direction":"encode","with":"from_base85"},"chunk":"encoding"},{"id":"to_base91","v":1,"name":"To Base91","summary":"Encode bytes as basE91 text, which is 14% to 23% longer than the input.","category":"encoding","tags":["base91"],"aliases":["base91 encode","b91","basE91"],"input":"bytes","output":"text","inverse":{"op":"from_base91"},"pair":{"title":"Base91","direction":"encode","with":"from_base91"},"chunk":"encoding"},{"id":"to_base92","v":1,"name":"To Base92","summary":"Encode bytes as Base92 text, which packs 13 bits into every two characters.","category":"encoding","tags":["base92"],"aliases":["base92 encode","b92"],"input":"bytes","output":"text","inverse":{"op":"from_base92"},"pair":{"title":"Base92","direction":"encode","with":"from_base92"},"chunk":"encoding"},{"id":"to_baudot","v":1,"name":"To Baudot","summary":"Write text in a five-unit teleprinter code: ITA2, US-TTY or Baudot's ITA1, with letter and figure shifts.","category":"encoding","tags":["telegraph","teleprinter","ita2","itu"],"aliases":["baudot","baudot code","ita2","ita1","murray code","us-tty","teletype","rtty","telex"],"family":"telegraph","input":"text","output":"text","pair":{"title":"Baudot","direction":"encode","with":"from_baudot"},"chunk":"classical"},{"id":"to_bcd","v":1,"name":"To BCD","summary":"Encode a whole number as binary-coded decimal, packed or unpacked.","category":"encoding","tags":["bcd","packed-decimal","number"],"aliases":["binary coded decimal","packed decimal","comp-3","8421","excess-3","aiken"],"input":"bigint","output":"bytes","inverse":{"op":"from_bcd"},"pair":{"title":"BCD","direction":"encode","with":"from_bcd"},"chunk":"encoding"},{"id":"to_bech32","v":1,"name":"To Bech32","summary":"Encode bytes as Bech32 or Bech32m, the checksummed format of SegWit addresses.","category":"encoding","tags":["bech32","bech32m","bitcoin","segwit","checksum"],"aliases":["bech32 encode","bech32m encode","segwit address","bip173","bip350","taproot address"],"input":"bytes","output":"text","inverse":{"op":"from_bech32"},"pair":{"title":"Bech32","direction":"encode","with":"from_bech32"},"chunk":"encoding"},{"id":"to_binary","v":1,"name":"To Binary","summary":"Write each byte as 8 binary digits.","category":"encoding","tags":["binary","bits"],"aliases":["bits","base2"],"input":"bytes","output":"text","inverse":{"op":"from_binary"},"pair":{"title":"Binary","direction":"encode","with":"from_binary"},"chunk":"encoding"},{"id":"to_binhex","v":1,"name":"To BinHex","summary":"Encode bytes as a BinHex 4.0 (.hqx) file, the classic Mac format of RFC 1741.","category":"encoding","tags":["binhex","hqx","macintosh","rfc1741"],"aliases":["binhex encode","hqx","binhex 4.0","mac-binhex40"],"input":"bytes","output":"text","inverse":{"op":"from_binhex"},"pair":{"title":"BinHex","direction":"encode","with":"from_binhex"},"chunk":"encoding"},{"id":"to_braille","v":1,"name":"To Braille","summary":"Write text as six-dot Unicode Braille cells, using the Braille ASCII mapping.","category":"encoding","tags":["braille","unicode","brf"],"aliases":["braille encode","braille ascii","brf","six dot"],"input":"text","output":"text","pair":{"title":"Braille","direction":"encode","with":"from_braille"},"chunk":"encoding"},{"id":"to_brainfuck","v":1,"name":"To Brainfuck","summary":"Write a Brainfuck program, or one in Ook! or another dialect, that prints the input.","category":"code","tags":["brainfuck","esolang","generator","ook","ctf"],"aliases":["brainfuck encode","text to brainfuck","brainfuck generator","to ook","ook encode","text to ook","to pikalang","to spoon"],"family":"esolang","input":"bytes","output":"text","inverse":{"op":"run_brainfuck"},"pair":{"title":"Brainfuck","direction":"encode","with":"run_brainfuck"},"chunk":"esolang"},{"id":"to_camel_case","v":1,"name":"To Camel Case","summary":"Join words into a camelCase identifier: the first word small, the rest capitalized.","category":"utility","tags":["case","identifier","code","naming"],"aliases":["To Camel case","camelCase","PascalCase","upper camel case","lower camel case"],"input":"text","output":"text","chunk":"utility"},{"id":"to_case_insensitive_regex","v":1,"name":"To Case Insensitive Regex","summary":"Rewrite a regular expression to match either case without the i flag: abc becomes [aA][bB][cC].","category":"utility","tags":["regex","case","pattern"],"aliases":["To Case Insensitive Regex","case insensitive regex","regex ignore case"],"input":"text","output":"text","pair":{"title":"Case-insensitive regex","direction":"encode","with":"from_case_insensitive_regex"},"chunk":"utility"},{"id":"to_charcode","v":1,"name":"To Charcode","summary":"Write each character's Unicode code point as a number.","category":"encoding","tags":["unicode","code-point"],"aliases":["char code","code points","ord"],"input":"text","output":"text","inverse":{"op":"from_charcode"},"pair":{"title":"Charcode","direction":"encode","with":"from_charcode"},"chunk":"encoding"},{"id":"to_cobs","v":1,"name":"To COBS","summary":"Encode bytes with Consistent Overhead Byte Stuffing, so the output has no zero bytes.","category":"encoding","tags":["cobs","framing","byte-stuffing","serial"],"aliases":["cobs encode","byte stuffing","consistent overhead byte stuffing"],"input":"bytes","output":"bytes","inverse":{"op":"from_cobs"},"pair":{"title":"COBS","direction":"encode","with":"from_cobs"},"chunk":"encoding"},{"id":"to_crockford_base32","v":1,"name":"To Crockford Base32","summary":"Encode bytes in Douglas Crockford's Base32, optionally with its check symbol.","category":"encoding","tags":["base32","crockford","ulid"],"aliases":["crockford base32 encode","crockford32","base32 crockford","ulid"],"input":"bytes","output":"text","inverse":{"op":"from_crockford_base32"},"pair":{"title":"Crockford Base32","direction":"encode","with":"from_crockford_base32"},"chunk":"encoding"},{"id":"to_deadfish","v":1,"name":"To Deadfish","summary":"Write a Deadfish program whose o commands spell out the input, one character code each.","category":"code","tags":["deadfish","esolang","generator","ctf"],"aliases":["deadfish encode","text to deadfish"],"family":"esolang","input":"text","output":"text","inverse":{"op":"run_deadfish"},"pair":{"title":"Deadfish","direction":"encode","with":"run_deadfish"},"chunk":"esolang"},{"id":"to_decimal","v":1,"name":"To Decimal","summary":"Write each byte as a decimal number.","category":"encoding","tags":["decimal","base10"],"aliases":["base10","bytes to numbers"],"input":"bytes","output":"text","inverse":{"op":"from_decimal"},"pair":{"title":"Decimal","direction":"encode","with":"from_decimal"},"chunk":"encoding"},{"id":"to_factorial_base","v":1,"name":"To Factorial Base","summary":"Write an integer in the factorial number system (factoradic): 463 = 3:4:1:0:1:0.","category":"encoding","tags":["numbers","numerals","factorial"],"aliases":["factoradic","factorial number system","cantor expansion","lehmer code","factorial base"],"input":"bigint","output":"text","inverse":{"op":"from_factorial_base"},"pair":{"title":"Factorial Base","direction":"encode","with":"from_factorial_base"},"chunk":"math"},{"id":"to_float","v":1,"name":"To Float","summary":"Read bytes as IEEE 754 floating-point numbers, 4 or 8 bytes each.","category":"encoding","tags":["float","ieee-754","number"],"aliases":["ieee 754","bytes to float","double","single precision","binary32","binary64"],"input":"bytes","output":"text","inverse":{"op":"from_float"},"pair":{"title":"Float","direction":"encode","with":"from_float"},"chunk":"encoding"},{"id":"to_gray_code","v":1,"name":"To Gray Code","summary":"Write a whole number as its reflected binary Gray code: 5 is 111.","category":"encoding","tags":["gray-code","binary","number"],"aliases":["gray code","reflected binary","rbc","gray encode"],"input":"bigint","output":"text","inverse":{"op":"from_gray_code"},"pair":{"title":"Gray code","direction":"encode","with":"from_gray_code"},"chunk":"encoding"},{"id":"to_hex","v":1,"name":"To Hex","summary":"Encode bytes as hexadecimal text.","category":"encoding","tags":["hex","base16","rfc4648"],"aliases":["base16","hex encode"],"input":"bytes","output":"text","inverse":{"op":"from_hex"},"pair":{"title":"Hex","direction":"encode","with":"from_hex"},"chunk":"encoding"},{"id":"to_hex_content","v":1,"name":"To Hex Content","summary":"Write bytes as a Snort content string: printable text as is, other bytes as |hex|.","category":"encoding","tags":["snort","suricata","ids","hex"],"aliases":["snort content","suricata content","content match","pipe hex"],"input":"bytes","output":"text","inverse":{"op":"from_hex_content"},"pair":{"title":"Hex Content","direction":"encode","with":"from_hex_content"},"chunk":"encoding"},{"id":"to_hexdump","v":1,"name":"To Hexdump","summary":"Show bytes as a hex dump: offset, hex bytes and printable characters on each line.","category":"encoding","tags":["hexdump","xxd","hex","dump"],"aliases":["hexdump -C","xxd","hex dump"],"input":"bytes","output":"text","inverse":{"op":"from_hexdump"},"pair":{"title":"Hexdump","direction":"encode","with":"from_hexdump"},"chunk":"encoding"},{"id":"to_hodor","v":1,"name":"To Hodor","summary":"Write JavaScript (or any text) in Hodor, as hodor-lang's js2hd does.","category":"code","tags":["hodor","esolang","javascript","substitution","ctf"],"aliases":["hodor encode","js2hd","text to hodor"],"family":"esolang","input":"text","output":"text","pair":{"title":"Hodor","direction":"encode","with":"from_hodor"},"chunk":"esolang"},{"id":"to_html_entity","v":1,"name":"To HTML Entity","summary":"Replace characters with HTML character references such as &lt; or &#233;.","category":"encoding","tags":["html","entity","escape","web"],"aliases":["html encode","html escape","html entities","character reference","htmlspecialchars"],"input":"text","output":"text","inverse":{"op":"from_html_entity"},"pair":{"title":"HTML Entity","direction":"encode","with":"from_html_entity"},"chunk":"encoding"},{"id":"to_integer","v":1,"name":"To Integer","summary":"Read bytes or text as one big integer, as RSA and CTF challenges do with a message.","category":"encoding","tags":["integer","bigint","rsa","number"],"aliases":["text-integer conversion","bytes_to_long","int.from_bytes","text to number","bytes to integer"],"input":"bytes","output":"bigint","pair":{"title":"Integer","direction":"encode","with":"from_integer"},"chunk":"encoding"},{"id":"to_jsfuck","v":1,"name":"To JSFuck","summary":"Encode JavaScript (or any text) as JSFuck, using only the characters []()!+.","category":"code","tags":["jsfuck","javascript","obfuscation","ctf"],"aliases":["jsfuck encode","jsfuck encoder","javascript to jsfuck","js fuck"],"family":"esolang","input":"text","output":"text","inverse":{"op":"from_jsfuck"},"pair":{"title":"JSFuck","direction":"encode","with":"from_jsfuck"},"chunk":"esolang"},{"id":"to_kebab_case","v":1,"name":"To Kebab Case","summary":"Join words into a kebab-case identifier: lower case, separated by hyphens.","category":"utility","tags":["case","identifier","code","naming"],"aliases":["To Kebab case","kebab-case","dash case","spinal case","train case","slug"],"input":"text","output":"text","chunk":"utility"},{"id":"to_leet_speak","v":1,"name":"To Leet Speak","summary":"Write text in leet speak, replacing letters with look-alike digits or symbols: h3ll0 w0rld.","category":"utility","tags":["leet","1337","text","fun"],"aliases":["Convert Leet Speak","leetspeak","1337","l33t","elite speak"],"input":"text","output":"text","pair":{"title":"Leet speak","direction":"encode","with":"from_leet_speak"},"chunk":"utility"},{"id":"to_lower_case","v":1,"name":"To Lower Case","summary":"Turn every letter into its lower-case form, in any script.","category":"utility","tags":["case","unicode","text"],"aliases":["To Lower case","lowercase","downcase","tolower"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"to_messagepack","v":1,"name":"To MessagePack","summary":"Encode JSON as MessagePack, a compact binary form of JSON.","category":"data-format","tags":["messagepack","msgpack","json","serialization","binary"],"aliases":["msgpack","msgpack encode","messagepack encode","json to messagepack"],"input":"json","output":"bytes","inverse":{"op":"from_messagepack"},"pair":{"title":"MessagePack","direction":"encode","with":"from_messagepack"},"chunk":"data-format"},{"id":"to_modhex","v":1,"name":"To Modhex","summary":"Encode bytes as Yubico ModHex, the hex YubiKey OTPs are typed in.","category":"encoding","tags":["modhex","yubikey","otp","hex"],"aliases":["modhex encode","yubikey","yubico otp"],"input":"bytes","output":"text","inverse":{"op":"from_modhex"},"pair":{"title":"Modhex","direction":"encode","with":"from_modhex"},"chunk":"encoding"},{"id":"to_morse_code","v":1,"name":"To Morse Code","summary":"Write text as International Morse code: dots and dashes, letter by letter.","category":"encoding","tags":["morse","itu","telegraph"],"aliases":["morse","morse code","international morse code","cw"],"input":"text","output":"text","pair":{"title":"Morse code","direction":"encode","with":"from_morse_code"},"chunk":"classical"},{"id":"to_multitap","v":1,"name":"To Multi-tap","summary":"Write text as phone keypad presses, as multi-tap texting typed it: 44 33 555 555 666 for HELLO.","category":"encoding","tags":["phone","keypad","sms","multi-tap"],"aliases":["multi-tap","multitap","phone keypad cipher","sms code","mobile phone cipher","keypad code"],"input":"text","output":"text","pair":{"title":"Multi-tap","direction":"encode","with":"from_multitap"},"chunk":"classical"},{"id":"to_nato_alphabet","v":1,"name":"To NATO Alphabet","summary":"Spell out letters and digits with the NATO/ICAO phonetic alphabet: Alfa, Bravo, Charlie…","category":"encoding","tags":["nato","icao","phonetic","spelling-alphabet","radio"],"aliases":["Convert to NATO alphabet","phonetic alphabet","spelling alphabet","ICAO alphabet","radio alphabet","alfa bravo charlie"],"input":"text","output":"text","pair":{"title":"NATO alphabet","direction":"encode","with":"from_nato_alphabet"},"chunk":"utility"},{"id":"to_octal","v":1,"name":"To Octal","summary":"Write each byte as an octal number.","category":"encoding","tags":["octal","base8"],"aliases":["base8"],"input":"bytes","output":"text","inverse":{"op":"from_octal"},"pair":{"title":"Octal","direction":"encode","with":"from_octal"},"chunk":"encoding"},{"id":"to_punycode","v":1,"name":"To Punycode","summary":"Encode Unicode text as Punycode, the ASCII form of internationalized domain names.","category":"encoding","tags":["punycode","idn","idna","domain","unicode"],"aliases":["idn","idna","xn--"],"input":"text","output":"text","inverse":{"op":"from_punycode"},"pair":{"title":"Punycode","direction":"encode","with":"from_punycode"},"chunk":"encoding"},{"id":"to_quoted_printable","v":1,"name":"To Quoted-Printable","summary":"Encode bytes as Quoted-Printable, the MIME encoding for mostly-ASCII text.","category":"encoding","tags":["quoted-printable","mime","email"],"aliases":["qp","mime"],"input":"bytes","output":"text","inverse":{"op":"from_quoted_printable"},"pair":{"title":"Quoted-Printable","direction":"encode","with":"from_quoted_printable"},"chunk":"encoding"},{"id":"to_roman_numerals","v":1,"name":"To Roman Numerals","summary":"Write a whole number in Roman numerals: 2024 is MMXXIV.","category":"encoding","tags":["roman","numerals","number"],"aliases":["roman numerals","to roman","roman encode","arabic to roman"],"input":"bigint","output":"text","inverse":{"op":"from_roman_numerals"},"pair":{"title":"Roman numerals","direction":"encode","with":"from_roman_numerals"},"chunk":"encoding"},{"id":"to_snake_case","v":1,"name":"To Snake Case","summary":"Join words into a snake_case identifier: lower case, separated by underscores.","category":"utility","tags":["case","identifier","code","naming"],"aliases":["To Snake case","snake_case","screaming snake case","constant case"],"input":"text","output":"text","chunk":"utility"},{"id":"to_t9","v":1,"name":"To T9","summary":"Write text as T9 key presses, one per letter: ARMY JUMP is 2769 5867.","category":"encoding","tags":["phone","keypad","sms","t9","predictive-text"],"aliases":["t9","t9 predictive text","text on nine keys","phone keypad words","t9 encode"],"input":"text","output":"text","pair":{"title":"T9","direction":"encode","with":"from_t9"},"chunk":"classical"},{"id":"to_table","v":1,"name":"To Table","summary":"Turn delimited text (CSV, TSV, pipes…) into a table, optionally using the first row as the header.","category":"utility","tags":["table","csv","tsv","delimited","grid"],"aliases":["csv to table","make table","tabulate","csv viewer"],"input":"text","output":"table","chunk":"code"},{"id":"to_tap_code","v":1,"name":"To Tap Code","summary":"Write letters in the prisoners' tap code: taps for a row, then taps for a column.","category":"encoding","tags":["tap-code","knock-code","polybius","pow"],"aliases":["tap code","knock code","prisoner tap code","smitty code"],"input":"text","output":"text","pair":{"title":"Tap code","direction":"encode","with":"from_tap_code"},"chunk":"classical"},{"id":"to_unary","v":1,"name":"To Unary","summary":"Turn a Brainfuck program into Unary or Lenguage: the length of the program, or the program itself.","category":"code","tags":["unary","lenguage","brainfuck","esolang","ctf"],"aliases":["unary encode","brainfuck to unary","lenguage encode"],"family":"esolang","input":"text","output":"text","pair":{"title":"Unary","direction":"encode","with":"from_unary"},"chunk":"esolang"},{"id":"to_unix_timestamp","v":1,"name":"To UNIX Timestamp","summary":"Turn a date into a Unix timestamp: seconds, ms, µs or ns since 1970-01-01T00:00:00Z.","category":"utility","tags":["time","date","unix","epoch","timestamp","posix"],"aliases":["date to epoch","unix time","date to timestamp","posix time","unix epoch"],"input":"text","output":"decimal","pair":{"title":"UNIX Timestamp","direction":"encode","with":"from_unix_timestamp"},"chunk":"time"},{"id":"to_upper_case","v":1,"name":"To Upper Case","summary":"Turn letters into capitals: all of them, or the first of each word, sentence or line.","category":"utility","tags":["case","unicode","text","capitalize","title-case"],"aliases":["To Upper case","uppercase","upcase","capitalize","capitalise","title case"],"input":"bytes","output":"bytes","chunk":"utility"},{"id":"to_uuencode","v":1,"name":"To UUencode","summary":"Encode bytes as uuencoded text, as POSIX uuencode writes it, with begin and end lines.","category":"encoding","tags":["uuencode","uu","posix","usenet","email"],"aliases":["uuencode","uuencoding","uu encode","uue"],"input":"bytes","output":"text","inverse":{"op":"from_uuencode"},"pair":{"title":"UUencode","direction":"encode","with":"from_uuencode"},"chunk":"encoding"},{"id":"to_whitespace","v":1,"name":"To Whitespace","summary":"Write a Whitespace program that prints the input.","category":"code","tags":["whitespace","esolang","generator","ctf"],"aliases":["whitespace encode","text to whitespace"],"family":"esolang","input":"text","output":"text","inverse":{"op":"run_whitespace"},"pair":{"title":"Whitespace","direction":"encode","with":"run_whitespace"},"chunk":"esolang"},{"id":"to_xxencode","v":1,"name":"To XXencode","summary":"Encode bytes as xxencoded text: uuencode's layout with letters, digits, + and -.","category":"encoding","tags":["xxencode","xx","uuencode","usenet"],"aliases":["xxencode","xxencoding","xx encode","xxe"],"input":"bytes","output":"text","inverse":{"op":"from_xxencode"},"pair":{"title":"XXencode","direction":"encode","with":"from_xxencode"},"chunk":"encoding"},{"id":"to_yenc","v":1,"name":"To yEnc","summary":"Encode bytes as yEnc, Usenet's 8-bit binary encoding, with =ybegin and =yend lines.","category":"encoding","tags":["yenc","usenet","nntp"],"aliases":["yenc encode","yencode","ybegin"],"input":"bytes","output":"bytes","inverse":{"op":"from_yenc"},"pair":{"title":"yEnc","direction":"encode","with":"from_yenc"},"chunk":"encoding"},{"id":"to_zbase32","v":1,"name":"To z-base-32","summary":"Encode bytes as z-base-32, the human-oriented Base32 of Tahoe-LAFS and Mnet.","category":"encoding","tags":["base32","zbase32"],"aliases":["z-base-32 encode","zbase32","zbase-32","z base 32"],"input":"bytes","output":"text","inverse":{"op":"from_zbase32"},"pair":{"title":"z-base-32","direction":"encode","with":"from_zbase32"},"chunk":"encoding"},{"id":"translate_datetime_format","v":1,"name":"Translate DateTime Format","summary":"Rewrite a date in another format and time zone: ISO 8601, RFC 3339, RFC 2822 or a custom pattern.","category":"utility","tags":["time","date","format","timezone","iso8601","rfc2822"],"aliases":["convert date","date format","time zone converter","change timezone","reformat date"],"input":"text","output":"text","chunk":"time"},{"id":"tri_square_decode","v":1,"name":"Tri-square Decode","summary":"Decrypt the ACA's Tri-square: each three cipher letters give back a pair.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["tri-square","trisquare","three squares","three-square"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Tri-square","direction":"decode","with":"tri_square_encode"},"chunk":"classical"},{"id":"tri_square_encode","v":1,"name":"Tri-square Encode","summary":"Encrypt each pair of letters as three, with three keyed squares (the ACA's Tri-square).","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["tri-square","trisquare","three squares","three-square"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Tri-square","direction":"encode","with":"tri_square_decode"},"chunk":"classical"},{"id":"trifid_decode","v":1,"name":"Trifid Decode","summary":"Decrypt Delastelle's Trifid cipher with the 27-symbol key and the period.","category":"classical-cipher","tags":["aca","key-square","fractionating"],"aliases":["trifid","trifid cipher","delastelle","twin trifid"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Trifid","direction":"decode","with":"trifid_encode"},"chunk":"classical"},{"id":"trifid_encode","v":1,"name":"Trifid Encode","summary":"Encrypt with Delastelle's Trifid cipher: three coordinates per letter in a 3 × 3 × 3 cube, mixed per period.","category":"classical-cipher","tags":["aca","key-square","fractionating"],"aliases":["trifid","trifid cipher","delastelle","twin trifid"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Trifid","direction":"encode","with":"trifid_decode"},"chunk":"classical"},{"id":"triple_des_decrypt","v":1,"name":"Triple DES Decrypt","summary":"Decrypt two- or three-key Triple DES (3DES, TDEA) in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["des","3des","tdea","block-cipher","cbc"],"aliases":["3des","tdes","tdea","des-ede3","des-ede","triple des","triple des decrypt"],"input":"bytes","output":"bytes","pair":{"title":"Triple DES","direction":"decode","with":"triple_des_encrypt"},"chunk":"encryption"},{"id":"triple_des_encrypt","v":1,"name":"Triple DES Encrypt","summary":"Encrypt with two- or three-key Triple DES (3DES, TDEA) in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["des","3des","tdea","block-cipher","cbc"],"aliases":["3des","tdes","tdea","des-ede3","des-ede","triple des","triple des encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"triple_des_decrypt"},"pair":{"title":"Triple DES","direction":"encode","with":"triple_des_decrypt"},"chunk":"encryption"},{"id":"trithemius_decode","v":1,"name":"Trithemius Decode","summary":"Decrypt Trithemius's tabula recta: shift the first letter back by 0, the next by 1, and so on.","category":"classical-cipher","tags":["polyalphabetic","tableau"],"aliases":["trithemius","tabula recta","progressive caesar","trithemius cipher"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"trithemius_encode"},"pair":{"title":"Trithemius","direction":"decode","with":"trithemius_encode"},"chunk":"classical"},{"id":"trithemius_encode","v":1,"name":"Trithemius Encode","summary":"Encrypt with Trithemius's tabula recta: shift the first letter by 0, the next by 1, and so on.","category":"classical-cipher","tags":["polyalphabetic","tableau"],"aliases":["trithemius","tabula recta","progressive caesar","trithemius cipher"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"trithemius_decode"},"pair":{"title":"Trithemius","direction":"encode","with":"trithemius_decode"},"chunk":"classical"},{"id":"two_square_decode","v":1,"name":"Two-square Decode","summary":"Decrypt Two-square pairs with the two keyed squares, horizontal or vertical.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["two-square","two square","twosquare","double playfair","two-square cipher"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Two-square","direction":"decode","with":"two_square_encode"},"chunk":"classical"},{"id":"two_square_encode","v":1,"name":"Two-square Encode","summary":"Encrypt pairs of letters with two keyed squares, taking the other corners of each pair's rectangle.","category":"classical-cipher","tags":["aca","key-square","digraphic"],"aliases":["two-square","two square","twosquare","double playfair","two-square cipher"],"family":"key-square","input":"bytes","output":"bytes","pair":{"title":"Two-square","direction":"encode","with":"two_square_decode"},"chunk":"classical"},{"id":"twofish_decrypt","v":1,"name":"Twofish Decrypt","summary":"Decrypt Twofish in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["twofish","block-cipher","schneier","aes-finalist","cbc"],"aliases":["twofish","twofish-128","twofish-256","twofish-cbc","twofish decrypt"],"input":"bytes","output":"bytes","pair":{"title":"Twofish","direction":"decode","with":"twofish_encrypt"},"chunk":"encryption"},{"id":"twofish_encrypt","v":1,"name":"Twofish Encrypt","summary":"Encrypt with Twofish in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["twofish","block-cipher","schneier","aes-finalist","cbc"],"aliases":["twofish","twofish-128","twofish-256","twofish-cbc","twofish encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"twofish_decrypt"},"pair":{"title":"Twofish","direction":"encode","with":"twofish_decrypt"},"chunk":"encryption"},{"id":"typex","v":1,"name":"Typex","summary":"Encrypt or decrypt with the British Typex rotor machine: five rotors, two of them fixed stators.","category":"classical-cipher","tags":["typex","rotor-machine","bletchley","ww2"],"aliases":["type x","typex machine","rafenigma"],"family":"machine","input":"bytes","output":"bytes","chunk":"machines"},{"id":"unescape_string","v":1,"name":"Unescape String","summary":"Turn the backslash escapes of a JavaScript, JSON, C or Python string back into characters.","category":"utility","tags":["escape","unescape","string","javascript","json","c","python","literal"],"aliases":["Unescape string","string unescape","stripslashes","backslash unescape","unquote"],"input":"text","output":"text","pair":{"title":"String escapes","direction":"decode","with":"escape_string"},"chunk":"utility"},{"id":"unescape_unicode","v":1,"name":"Unescape Unicode","summary":"Turn \\u escapes back into the characters they stand for.","category":"encoding","tags":["unicode","escape","javascript","json","python"],"aliases":["unicode unescape","\\u","unescape unicode characters"],"input":"text","output":"text","pair":{"title":"Unicode escapes","direction":"decode","with":"escape_unicode"},"chunk":"encoding"},{"id":"unicode_text_format","v":1,"name":"Unicode Text Format","summary":"Underline or strike through plain text with combining characters, for places without formatting.","category":"utility","tags":["unicode","underline","strikethrough","combining","format"],"aliases":["Unicode Text Format","underline text","strikethrough text","strike text","combining marks"],"input":"text","output":"text","chunk":"utility"},{"id":"unique","v":1,"name":"Unique","summary":"Remove repeated lines or other items, optionally counting them; or keep only the repeats.","category":"utility","tags":["unique","duplicates","lines","uniq","list"],"aliases":["Unique","uniq","deduplicate","dedupe","remove duplicates","distinct"],"input":"text","output":"text","chunk":"utility"},{"id":"unix_timestamp_to_windows_filetime","v":1,"name":"UNIX Timestamp to Windows Filetime","summary":"Convert a Unix timestamp to a Windows FILETIME: 100-nanosecond intervals since 1601.","category":"utility","tags":["time","date","windows","filetime","ntfs","timestamp","forensics"],"aliases":["filetime","to filetime","ntfs timestamp","ldap timestamp","win32 time"],"input":"decimal","output":"text","pair":{"title":"Windows Filetime","direction":"encode","with":"windows_filetime_to_unix_timestamp"},"chunk":"time"},{"id":"untar","v":1,"name":"Untar","summary":"Extract the files from a tar archive: POSIX ustar and pax, GNU long names, old v7 tar.","category":"compression","tags":["tar","untar","ustar","pax","archive","extract","files"],"aliases":["tar extract","extract tar","tar -x","tarball","open tar"],"input":"bytes","output":"files","chunk":"compression"},{"id":"unzip","v":1,"name":"Unzip","summary":"Extract the files from a ZIP archive: stored, Deflate, bzip2 or LZMA, with ZipCrypto passwords.","category":"compression","tags":["zip","unzip","archive","pkzip","extract","files","zipcrypto"],"aliases":["unzip file","extract zip","pkunzip","open zip","zip extract"],"input":"bytes","output":"files","chunk":"compression"},{"id":"url_decode","v":1,"name":"URL Decode","summary":"Decode percent-encoded text to bytes.","category":"encoding","tags":["url","percent-encoding","rfc3986"],"aliases":["percent decode","urldecode","uri decode"],"input":"text","output":"bytes","pair":{"title":"URL","direction":"decode","with":"url_encode"},"chunk":"encoding"},{"id":"url_encode","v":1,"name":"URL Encode","summary":"Percent-encode bytes for use in a URL.","category":"encoding","tags":["url","percent-encoding","rfc3986"],"aliases":["percent encode","urlencode","uri encode"],"input":"bytes","output":"text","inverse":{"op":"url_decode"},"pair":{"title":"URL","direction":"encode","with":"url_decode"},"chunk":"encoding"},{"id":"variant_decode","v":1,"name":"Variant Beaufort Decode","summary":"Decrypt the Variant (Variant Beaufort): shift each letter forward by the next letter of a key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["variant","variant beaufort","aca variant","variant cipher"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"variant_encode"},"pair":{"title":"Variant Beaufort","direction":"decode","with":"variant_encode"},"chunk":"classical"},{"id":"variant_encode","v":1,"name":"Variant Beaufort Encode","summary":"Encrypt with the Variant (Variant Beaufort): shift each letter back by the next letter of a key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["variant","variant beaufort","aca variant","variant cipher"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"variant_decode"},"pair":{"title":"Variant Beaufort","direction":"encode","with":"variant_decode"},"chunk":"classical"},{"id":"varint_decode","v":1,"name":"VarInt Decode","summary":"Decode a variable-length varint (LEB128), as used by protobuf and DWARF, to an integer.","category":"encoding","tags":["varint","leb128","protobuf","number"],"aliases":["leb128","uleb128","sleb128","protobuf varint","zigzag"],"input":"bytes","output":"bigint","pair":{"title":"VarInt","direction":"decode","with":"varint_encode"},"chunk":"encoding"},{"id":"varint_encode","v":1,"name":"VarInt Encode","summary":"Encode an integer as a variable-length varint (LEB128), as protobuf and DWARF do.","category":"encoding","tags":["varint","leb128","protobuf","number"],"aliases":["leb128","uleb128","sleb128","protobuf varint","zigzag"],"input":"bigint","output":"bytes","inverse":{"op":"varint_decode"},"pair":{"title":"VarInt","direction":"encode","with":"varint_decode"},"chunk":"encoding"},{"id":"view_bit_plane","v":1,"name":"View Bit Plane","summary":"Show one bit of one channel as a black and white image, to find data hidden in the low bits.","category":"image","tags":["image","pixels","bit-plane","lsb","steganography","forensics"],"aliases":["bit plane","stegsolve","lsb plane"],"input":"image","output":"image","chunk":"image"},{"id":"vigenere_decode","v":1,"name":"Vigenère Decode","summary":"Decrypt the Vigenère cipher: shift each letter back by the next letter of a key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["vigenere","vigenère","polyalphabetic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"vigenere_encode"},"pair":{"title":"Vigenère","direction":"decode","with":"vigenere_encode"},"chunk":"classical"},{"id":"vigenere_encode","v":1,"name":"Vigenère Encode","summary":"Encrypt with the Vigenère cipher: shift each letter by the next letter of a key.","category":"classical-cipher","tags":["aca","polyalphabetic","tableau"],"aliases":["vigenere","vigenère","polyalphabetic"],"family":"tableau","input":"bytes","output":"bytes","inverse":{"op":"vigenere_decode"},"pair":{"title":"Vigenère","direction":"encode","with":"vigenere_decode"},"chunk":"classical"},{"id":"whirlpool","v":1,"name":"Whirlpool","summary":"Compute the 512-bit Whirlpool digest, or one of its two earlier versions.","category":"hashing","tags":["hash","whirlpool","iso-10118-3","nessie","digest"],"aliases":["whirlpool-0","whirlpool-t","whirlpool512"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"windows_filetime_to_unix_timestamp","v":1,"name":"Windows Filetime to UNIX Timestamp","summary":"Convert a Windows FILETIME (100-nanosecond intervals since 1601) to a Unix timestamp.","category":"utility","tags":["time","date","windows","filetime","ntfs","timestamp","forensics"],"aliases":["filetime","from filetime","ntfs timestamp","ldap timestamp","win32 time"],"input":"text","output":"decimal","pair":{"title":"Windows Filetime","direction":"decode","with":"unix_timestamp_to_windows_filetime"},"chunk":"time"},{"id":"word_count","v":1,"name":"Word Count","summary":"Count the lines, words, characters and bytes in the input, like wc.","category":"utility","tags":["count","words","lines","characters","wc","length"],"aliases":["wc","count words","count lines","line count","character count","length"],"input":"bytes","output":"json","chunk":"utility"},{"id":"wrap","v":1,"name":"Wrap","summary":"Break long lines so that none is wider than a given number of characters.","category":"utility","tags":["wrap","fold","lines","width","text"],"aliases":["Wrap","fold","line width","word wrap","hard wrap"],"input":"text","output":"text","chunk":"utility"},{"id":"xkcd_random_number","v":1,"name":"XKCD Random Number","summary":"Return 4, a random number chosen by a fair dice roll (xkcd 221).","category":"utility","tags":["random","joke","xkcd"],"aliases":["XKCD Random Number","xkcd 221","random number"],"input":"bytes","output":"number","chunk":"analysis"},{"id":"xml_beautify","v":1,"name":"XML Beautify","summary":"Indent XML one element per line, leaving text, mixed content and preserved whitespace as written.","category":"data-format","tags":["xml","beautify","format","pretty-print"],"aliases":["xml format","xml pretty print","pretty xml","prettify xml","xml indent"],"input":"text","output":"text","chunk":"data-format"},{"id":"xml_minify","v":1,"name":"XML Minify","summary":"Remove the whitespace between XML elements, and comments unless kept.","category":"data-format","tags":["xml","minify","compact"],"aliases":["xml compact","compress xml","xml strip whitespace"],"input":"text","output":"text","chunk":"data-format"},{"id":"xor","v":1,"name":"XOR","summary":"XOR each byte with a key, repeating the key as needed.","category":"arithmetic","tags":["xor","bitwise","vernam"],"aliases":["exclusive or"],"input":"bytes","output":"bytes","inverse":{"op":"xor"},"chunk":"encoding"},{"id":"xor_brute_force","v":1,"name":"XOR Brute Force","summary":"Try XOR keys of one to four bytes and rank the results by how much they read like plaintext.","category":"analysis","tags":["xor","brute-force","cryptanalysis","malware"],"aliases":["XOR Brute Force","xor cracker","single-byte xor","xor key search"],"input":"bytes","output":"table","chunk":"analysis"},{"id":"xor_checksum","v":1,"name":"XOR Checksum","summary":"XOR every block of the input together into a checksum one block long.","category":"hashing","tags":["checksum","xor","lrc","nmea"],"aliases":["lrc","longitudinal redundancy check","nmea checksum","xor sum","bcc"],"input":"bytes","output":"text","chunk":"hashing"},{"id":"xpath_expression","v":1,"name":"XPath expression","summary":"Select nodes from XML with an XPath 1.0 expression, or compute a string, number or boolean.","category":"code","tags":["xml","xpath","query","select","extract"],"aliases":["xpath","xml query","xpath query"],"input":"text","output":"text","chunk":"code"},{"id":"xpress_decompress","v":1,"name":"XPRESS Decompress","summary":"Decompress Plain LZ77 (XPRESS), the Windows format of RtlCompressBuffer and hiberfil.sys.","category":"compression","tags":["xpress","lz77","ms-xca","windows","decompress"],"aliases":["xpress","plain lz77","COMPRESSION_FORMAT_XPRESS","RtlDecompressBuffer"],"input":"bytes","output":"bytes","chunk":"compression"},{"id":"xpress_huffman_decompress","v":1,"name":"XPRESS LZ77+Huffman Decompress","summary":"Decompress LZ77+Huffman (XPRESS Huffman), used in WIM images, SMB and Windows Update.","category":"compression","tags":["xpress","huffman","lz77","ms-xca","windows","decompress"],"aliases":["XPRESS Huffman Decompress","xpress huffman","lz77+huffman","COMPRESSION_FORMAT_XPRESS_HUFF"],"input":"bytes","output":"bytes","chunk":"compression"},{"id":"xsalsa20","v":1,"name":"XSalsa20","summary":"Encrypt or decrypt with XSalsa20: Salsa20 with a 24-byte nonce, as in NaCl and libsodium.","category":"encryption","tags":["salsa20","xsalsa20","stream-cipher","bernstein","nacl"],"aliases":["xsalsa","secretbox","xsalsa20 encrypt","xsalsa20 decrypt"],"input":"bytes","output":"bytes","inverse":{"op":"xsalsa20"},"chunk":"encryption"},{"id":"xtea_decrypt","v":1,"name":"XTEA Decrypt","summary":"Decrypt XTEA in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["xtea","tea","block-cipher","wheeler-needham","cbc"],"aliases":["xtea","extended tea","xtea-cbc","xtea decrypt"],"input":"bytes","output":"bytes","pair":{"title":"XTEA","direction":"decode","with":"xtea_encrypt"},"chunk":"encryption"},{"id":"xtea_encrypt","v":1,"name":"XTEA Encrypt","summary":"Encrypt with XTEA in CBC, CFB, OFB, CTR or ECB mode.","category":"encryption","tags":["xtea","tea","block-cipher","wheeler-needham","cbc"],"aliases":["xtea","extended tea","xtea-cbc","xtea encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"xtea_decrypt"},"pair":{"title":"XTEA","direction":"encode","with":"xtea_decrypt"},"chunk":"encryption"},{"id":"xxtea_decrypt","v":1,"name":"XXTEA Decrypt","summary":"Decrypt a whole message with XXTEA (corrected Block TEA) and remove its padding.","category":"encryption","tags":["xxtea","btea","corrected-block-tea","tea","wheeler-needham"],"aliases":["xxtea","btea","corrected block tea","block tea","xxtea decrypt"],"input":"bytes","output":"bytes","pair":{"title":"XXTEA","direction":"decode","with":"xxtea_encrypt"},"chunk":"encryption"},{"id":"xxtea_encrypt","v":1,"name":"XXTEA Encrypt","summary":"Encrypt a whole message with XXTEA (corrected Block TEA), padded to 32-bit words.","category":"encryption","tags":["xxtea","btea","corrected-block-tea","tea","wheeler-needham"],"aliases":["xxtea","btea","corrected block tea","block tea","xxtea encrypt"],"input":"bytes","output":"bytes","inverse":{"op":"xxtea_decrypt"},"pair":{"title":"XXTEA","direction":"encode","with":"xxtea_decrypt"},"chunk":"encryption"},{"id":"yaml_to_json","v":1,"name":"YAML to JSON","summary":"Read YAML 1.2 as JSON, with anchors and aliases resolved and no custom types.","category":"data-format","tags":["yaml","json","config"],"aliases":["yaml","yml","yaml parse","yml to json"],"input":"text","output":"json","pair":{"title":"YAML","direction":"decode","with":"json_to_yaml"},"chunk":"data-format"},{"id":"yara_rules","v":1,"name":"YARA Rules","summary":"Scan the input with YARA rules (YARA-X) and list the rules that match and where their strings matched.","category":"analysis","tags":["yara","yara-x","malware","signature","rules","scan","forensics","detection"],"aliases":["yara","yara-x","yr scan","yara scan","malware rules","yara rule"],"input":"bytes","output":"table","chunk":"forensics"},{"id":"zip","v":1,"name":"Zip","summary":"Put files in a ZIP archive, deflated or stored; plain input becomes one named file.","category":"compression","tags":["zip","archive","pkzip","deflate","files"],"aliases":["zip file","pkzip","archive","zipcrypto","zip files"],"input":"files","output":"bytes","chunk":"compression"},{"id":"zlib_deflate","v":1,"name":"Zlib Deflate","summary":"Compress bytes into the zlib format (RFC 1950): a 2-byte header, DEFLATE data, Adler-32.","category":"compression","tags":["zlib","deflate","rfc1950","compress"],"aliases":["zlib compress","zlib","compress"],"input":"bytes","output":"bytes","inverse":{"op":"zlib_inflate"},"pair":{"title":"Zlib","direction":"encode","with":"zlib_inflate"},"chunk":"compression"},{"id":"zlib_inflate","v":1,"name":"Zlib Inflate","summary":"Decompress zlib data (RFC 1950), checking its Adler-32.","category":"compression","tags":["zlib","deflate","rfc1950","decompress"],"aliases":["zlib decompress","zlib","inflate","decompress","flatedecode"],"input":"bytes","output":"bytes","pair":{"title":"Zlib","direction":"decode","with":"zlib_deflate"},"chunk":"compression"}]}