Encryption Toolbox

Identify an unknown cipher, encode one message with every cipher at once, encrypt with AES-256-GCM, or solve a specific classic cipher by hand. Everything runs in your browser — keys and plaintext never leave this page.

Examples:
{{ encResults.length }} encodings from {{ encFamilies.length }} ciphers · {{ encCounts.exact }} exactly round-trip · {{ encCounts.approx }} letters-only · {{ encCounts.oneWay }} one-way digests
Cipher alphabet (26)

{{ wbDef.note }}

AES-256-GCM PBKDF2-SHA256 · 200k iters salt 16B · IV 12B
Type a message above to generate every encoding.

Result

{{ aes.err || aes.out }}

About this toolbox

Cipher Identifier. The charset is checked first — dots and dashes mean Morse, two symbols in blocks of five mean Baconian, an A D F G X alphabet means ADFGX, three Base64URL segments mean a JWT. Then statistics take over: the index of coincidence separates monoalphabetic ciphers (≈0.067 for English) from polyalphabetic ones (≈0.038–0.045), χ² against letter frequencies spots transposition (frequencies already correct, words missing), and Kasiski repeats plus per-period IC estimate the Vigenère key length. Confidence values are evidence, not proof.

Multi Encoder. One message goes in, every reversible encoding comes out — and each one is decoded again to check it survives the round trip. round-trip ✓ means the output decodes back byte-for-byte; letters only ≈ means the cipher legitimately drops spacing, punctuation or case (Playfair padding, letter-only square ciphers, ambiguous leetspeak).

AES-256-GCM is authenticated encryption: it both hides the message and detects tampering, so decryption fails loudly on a wrong password instead of returning garbage. PBKDF2 turns the password into a 256-bit key with 200,000 SHA-256 iterations and a random 16-byte salt; the salt and a random 12-byte IV are prepended to the ciphertext before Base64 encoding.

Caesar shifts every letter by a fixed amount — with 25 keys (32 in Cyrillic) it falls instantly to the brute-force view. Atbash mirrors the alphabet (A↔Z) and predates Caesar by centuries. Vigenère uses a keyword to pick a different shift per letter and resisted analysis for three centuries until the Kasiski examination of 1863. Playfair, Bifid and ADFGX encrypt pairs or fractions of letters, which is why their output has no usable single-letter frequencies. ROT13/ROT47 hide spoilers, not secrets.

Have an unknown string instead of an unknown cipher? Send it to the Multi Decoder — it runs every decoder at once and ranks the results.

All operations run locally via the Web Crypto API and plain JavaScript. Nothing you type is transmitted, logged or stored. Classic ciphers offer no real confidentiality — use AES for that.