Paste unknown ciphertext and instantly see which cipher it is. Free browser-based detector using Index of Coincidence, chi-squared and frequency analysis.
This cipher identifier answers the question every puzzle solver and CTF competitor eventually hits: what cipher is this? Paste an unknown string into the box above and the tool runs a statistical pass over it — Index of Coincidence, chi–squared distance from English letter frequencies, character–set profiling and repeated–pattern detection — then ranks the cipher types that best explain what it sees, each with a confidence score and the reasoning behind it. Every candidate comes with a one–click link that carries your ciphertext straight into the matching decoder, so identification and decoding are a single workflow.
Nothing is uploaded. The whole analysis runs in JavaScript inside your browser, which means you can paste CTF flags, client data or competition artifacts without them ever crossing the network. There is no account, no rate limit and no queue.
A cipher finder is only as honest as its candidate list. This tool classifies against the following, and nothing beyond them:
A–Z a–z 0–9 + / =) plus a length that is a multiple of 4. Padding raises confidence to 95%.E(x) = (ax + b) mod 26 family.Beyond the ranked candidates, the results panel also links out to Beaufort, Hill and Enigma decoders and to an AES tool, so a manual next step is always one click away even when the statistics are inconclusive.
The central measurement is the Index of Coincidence (IC): the probability that two letters drawn at random from the text are identical. Ordinary English sits near 0.0667; uniformly random letters sit near 0.0385. Crucially, a monoalphabetic cipher does not change this number — relabelling every ‘E’ as ‘R’ leaves the shape of the distribution intact. A polyalphabetic cipher spreads each plaintext letter across several ciphertext letters and pushes the IC down toward random. That single statistic therefore splits the search space before any key is guessed:
| IC range | Interpretation | Candidates surfaced |
|---|---|---|
| ≥ 0.060 | Monoalphabetic | Caesar, substitution, affine, Atbash |
| 0.045 – 0.060 | Polyalphabetic | Vigenère (with Kasiski hints) |
| < 0.045 | Random or strongly encrypted | XOR, one–time pad |
The second measurement is chi–squared, the summed squared deviation of each letter’s observed percentage from its expected English percentage. A low chi–squared with a high IC is the fingerprint of a small–shift Caesar or a transposition; a high chi–squared with a high IC says the letters were remapped but not mixed, which is the general substitution case. The tool uses chi–squared to order the monoalphabetic candidates rather than to accept or reject them, because a short message can easily produce a misleading distribution.
Take the sample string built into the tool, Gur dhvpx oebja sbk whzcf bire gur ynml qbt. Its 35 letters give an IC in the monoalphabetic band, so Caesar, substitution, affine and Atbash all appear. Separately, the ROT13 check rotates every letter 13 places and finds real English words in the result — The quick brown fox jumps over the lazy dog — so ROT13 is promoted above the statistical candidates with a confidence in the high 80s. That is the pattern to expect: statistics narrow the field, and a successful trial decode settles it.
= padding is almost certainly Base64.Statistical cryptanalysis is a large–sample technique, and the single biggest cause of a wrong answer is too little text. The tool requires at least 20 letters before it will run the IC classification at all, and 10 letters before it considers a transposition. In practice, 100 characters or more gives a stable IC; below about 50, chi–squared becomes noisy enough that a Caesar cipher and a general substitution look alike.
A few other habits improve results sharply. Strip framing that is not part of the message — a flag{...} wrapper, quotation marks or an HTML entity will skew the character–set tests. Feed the tool the whole intercept rather than one line, since repeated patterns are what expose a Vigenère key length. And remember that encodings stack: a string that identifies cleanly as Base64 will frequently decode to something that still needs a second pass through the identifier. Running the decoded output back through this page is the normal way to peel a multi–layer CTF challenge apart.
Two failure modes are worth naming outright. First, a true one–time pad is indistinguishable from any other flat distribution, so a low–IC verdict is a statement about entropy, not a promise that XOR will work. Second, non–English plaintext breaks the frequency model entirely: the IC of Spanish, German or Italian differs from English, so a correct monoalphabetic cipher over foreign–language plaintext can land in the wrong band.
The obvious home is Capture The Flag competitions, where the crypto category routinely opens with an unlabelled string and the intended first move is exactly this triage. It is equally useful for cryptogram and escape–room puzzles, for geocaching coordinates, and for classroom work where the point is to see that a substitution cipher preserves the shape of a frequency histogram while a polyalphabetic one flattens it.
Incident responders reach for the same reasoning when they find an obfuscated blob in a script or a config file, though the answer there is usually Base64 or XOR rather than a classical cipher — the XOR cipher tool is the usual next stop. What this tool is not is an attack on modern cryptography. AES, RSA and their peers produce output with no exploitable structure at this level; identifying a blob as “high entropy” tells you the algorithm was doing its job.
It does not read the key; it reads the statistics the cipher leaves behind. Substitution ciphers preserve the letter–frequency shape, polyalphabetic ciphers flatten it, transposition ciphers preserve it exactly while destroying readability, and encodings such as Base64 or hex betray themselves through a restricted character set and a structural length rule. Combining those signals narrows an unknown string to a handful of plausible families.
Identification and decoding are split. This page ranks the likely cipher types and explains the evidence; each result then links to a dedicated decoder with your ciphertext already carried across. The one exception is ROT13, which is confirmed by actually performing the rotation and checking for English words.
At least 20 letters for the Index of Coincidence classification to run, and realistically 100 or more for a confident answer. Short strings produce unstable frequency counts, which is why a five–word cryptogram may show several monoalphabetic candidates with similar confidence scores.
An Index of Coincidence below 0.045 means the letter distribution is close to uniform. That happens with XOR, one–time pads, compressed or already–encrypted data, and with modern block ciphers. It can also happen with a long Vigenère key, where the key length approaches the message length.
No. All frequency counting, IC calculation and pattern matching happen client–side in your browser. The text never leaves your machine, and nothing is logged or stored.
An encoding such as Base64 or hexadecimal is a reversible representation change with no key — anyone can undo it. A cipher requires a key or a secret transformation. This tool reports both, because in practice an unknown string is at least as likely to be encoded as encrypted.
Only partially. The chi–squared test is calibrated against English letter frequencies, so non–English plaintext will inflate that score and may misrank the monoalphabetic candidates. The Index of Coincidence is more robust across Latin–alphabet languages, and the character–set and encoding checks are language–independent.
Treat the ranking as a shortlist, not a verdict, and try the next candidate down — the confidence scores are deliberately visible so you can. If several statistical candidates cluster near the same score, the text is probably too short; add more ciphertext and re–run.
A cipher identifier (sometimes called a "cipher decoder finder" or "cipher type detector") analyzes unknown ciphertext and tells you which cipher was most likely used to encode it. Instead of guessing whether you're looking at a Caesar shift, a Vigenère cipher, Base64, or something else entirely, you paste the ciphertext in and the tool ranks the most probable cipher types by confidence.
This is the first step in solving any unknown cipher: figure out what you're looking at before you try to decode it. CTF players, escape room designers, puzzle hunters, forensics analysts, and cryptography students all face the same problem — a string of suspicious characters and no label on what cipher produced it.
The identifier runs several layers of analysis on your input:
The combination gives a ranked list with confidence scores rather than a single guess. You can then jump directly to the corresponding decoder tool for the top match.
Once the identifier suggests the most likely cipher, use the linked decoder for that specific cipher to actually recover the plaintext. The identifier focuses on diagnosis; the dedicated decoders (Caesar, Vigenère, substitution solver, ROT13, etc.) handle the actual decryption with cipher-specific tooling like brute force, key recovery, and interactive solving.
Start with the character set, then the Index of Coincidence. A restricted alphabet gives the answer outright: only A and B means Bacon, only 0-9 and A-F means hex, trailing = padding means Base64, dots and dashes means Morse. If the text is plain A-Z, the IC decides the family — around 0.067 means monoalphabetic (Caesar, ROT13, Atbash or a general substitution), around 0.038 means polyalphabetic, most often Vigenère. If the letter frequencies look like normal English but the text is unreadable, nothing was substituted at all and you are looking at a transposition cipher. Paste the ciphertext above and the tool runs every one of these checks at once and ranks the candidates by confidence.
AI can usually tell you which cipher you are looking at, but it is not the thing that decodes it. Neural classifiers such as CrypTool's NCID are trained to recognise cipher types from their statistical fingerprints and are good at separating similar classical ciphers from short samples. The decoding itself is still deterministic cryptanalysis: brute-forcing the 25 Caesar shifts, Kasiski or IC analysis to recover a Vigenère key length, hill climbing to recover a substitution key. This tool uses the statistical approach rather than a model, so the confidence score is reproducible and you can check the reasoning. No method — model or otherwise — breaks modern encryption such as AES or RSA, or a correctly used one-time pad.
ROT13, because it is its own inverse — apply ROT13 a second time and the plaintext comes straight back, no key required. Atbash is next, a fixed A↔Z reversal that is also self-inverse, followed by the Caesar cipher, which has only 25 possible keys and falls to brute force instantly. Base64, hex and binary are easier still, but they are encodings rather than encryption: they carry no key at all, so anyone can reverse them. The hardest of the common classical ciphers is Vigenère with a long key, because you have to recover the key length before frequency analysis becomes usable at all.
Identify it first, then use the matching decoder — guessing before you know the cipher type is what wastes the time. Paste the ciphertext above for a ranked list of likely ciphers, then follow the link for the top match: the Caesar decoder brute-forces all 25 shifts, the substitution solver hill-climbs a key from ciphertext alone, and the Vigenère decoder estimates key length before attacking the letters. If the top match comes back as Base64 or hex, decode that layer and run the result through the identifier again — an encoding wrapped around a cipher is common in CTF challenges and puzzle hunts.