To identify an unknown cipher, work in three passes: look at the character set first, then the structure and length, then the letter frequency. The characters alone usually narrow it down fast — only 0s and 1s means binary, dots and dashes mean Morse, numbers 1–26 mean A1Z26, and letters only mean a substitution cipher. You can run a first automatic pass with the cipher identifier, but the flow below is what it — and an experienced solver — actually checks.
TL;DR
- Pass 1 — character set: what symbols appear tells you most of the answer.
- Pass 2 — structure: length, grouping, byte pairs, and a trailing
=narrow it further. - Pass 3 — frequency: for letters, whether one letter dominates separates simple shifts from Vigenère.
- Watch the classic misreads: Base64 vs hex, Atbash vs Caesar, A1Z26 without separators.
- When in doubt, run the auto-detector and confirm by decoding.
Pass 1: Look at the Character Set
This is the single biggest clue. Before anything clever, just ask what symbols the message is made of.
| Characters you see | Likely cipher or encoding |
|---|---|
Only 0 and 1 (in groups of 8) | Binary |
Only 0–9 and A–F | Hexadecimal |
Dots . and dashes - | Morse code |
Numbers 1–26 with separators | A1Z26 (letter positions) |
Letters, digits, + /, often ending in = | Base64 |
Letters only A–Z | A substitution cipher (Caesar, Atbash, Vigenère…) |
| Grid or angular shapes | Pigpen / symbol cipher |
For example, 01001000 01101001 can only be binary, and .... .. can only be Morse. If the message is nothing but letters, you have not solved it yet — but you have narrowed it to the substitution family, and passes 2 and 3 finish the job.
Pass 2: Look at Structure and Length
Once the character set is not decisive, the shape of the message helps:
- A trailing
=or==is Base64 padding — a strong Base64 signal that hex never has. - Two-digit groups that all fall in the 00–FF range point to hex bytes; groups of eight 0/1 point to binary bytes.
- Groups of five letters are a classic classical-cipher formatting (used to hide word boundaries) and suggest a manual substitution or transposition cipher.
- Numbers separated by hyphens or spaces, all between 1 and 26, are almost certainly A1Z26.
- Length that is a multiple of the alphabet or a short word can hint at a Vigenère key length, but that is a pass-3 clue.
Pass 3: Letter Frequency and Patterns
When you are left with letters only, frequency analysis tells the sub-types apart. In normal English, E, T, A, O and N are the most common letters, and that shape survives some ciphers but not others:
- Caesar shift keeps the exact frequency shape but rotates it — the most common letter in the ciphertext is just E shifted by the key, so one letter still clearly dominates.
- Atbash mirrors the alphabet (A↔Z), so the frequency shape is preserved but reflected; it is a fixed map with no key, and applying it twice returns the original.
- A general simple substitution keeps the frequency shape too, but scrambles which letter is which, so the most common ciphertext letter is probably standing in for E.
- Vigenère uses a keyword and several shifting alphabets, which flattens the frequency distribution — no single letter dominates. A flat frequency profile on letters-only text is the tell-tale sign of a polyalphabetic cipher rather than a simple shift.
So the quick test is: on letters-only text, if one letter clearly dominates, try a shift (Caesar), a mirror (Atbash), or a full substitution; if the frequencies look flat and even, suspect Vigenère.
Ninety percent of cipher identification is just reading the alphabet the message is written in. Solvers reach for frequency analysis, but most puzzles are given away by their character set before you ever count a letter.
Common Misreads
- Base64 vs hex. Both mix letters and digits. Hex uses only
0–9andA–F; Base64 uses the fullA–Z a–z 0–9 + /and often ends in=. A lowercase letter past F, or a=, means Base64, not hex. - Atbash vs Caesar. Both turn letters into other letters. If decoding with the fixed mirror (A↔Z) produces text, it is Atbash; if a consistent shift works, it is Caesar. ROT13 is simply a Caesar shift of 13.
- A1Z26 without separators. A run of digits like
1215is ambiguous — it could be LO or ABAE. See the A1Z26 guide for why separators are essential. - Morse without spaces.
...---...is readable as SOS only because it is a known prosign; run-together Morse is otherwise ambiguous. - Numbers that are not A1Z26. Two-digit groups can be hex or ASCII decimal codes rather than letter positions — check the range (letter positions stop at 26).
When to Just Use the Auto-Detector
If you want a fast first guess, paste the text into the cipher identifier. It checks the character set and structure the same way this flow does and suggests likely candidates. Treat it as a starting point rather than a verdict: confirm the guess by actually decoding with the matching tool. A candidate that produces readable text is the real answer; one that produces gibberish was a false lead.
FAQ
How do I figure out what cipher was used?
Check the character set first — 0s and 1s are binary, dots and dashes are Morse, numbers 1–26 are A1Z26, letters only means a substitution cipher. Then use structure and letter frequency to narrow it, and confirm by decoding.
What cipher uses only numbers?
Numbers from 1 to 26 with separators are usually the A1Z26 cipher (letter positions). Two-digit groups can instead be hexadecimal or ASCII decimal codes, so check the value range.
How can I tell Base64 from hexadecimal?
Hex uses only the digits 0–9 and letters A–F; Base64 uses the full alphabet plus + and / and often ends with an = pad. Any lowercase letter beyond F, or a trailing =, points to Base64.
How do I tell a Caesar cipher from Vigenère?
Run a frequency count. A Caesar cipher keeps one dominant letter (E shifted by the key); Vigenère uses a keyword and flattens the letter frequencies so none stands out.
Is there a tool that identifies a cipher automatically?
Yes — the cipher identifier checks the character set and structure and suggests likely candidates. Always confirm by decoding, since a guess is only right if it produces readable text.
Run a first pass with the cipher identifier, then confirm with the matching tool — Caesar, Atbash, Vigenère, or a decoder for binary, hex, or Morse. Browse every option in the tools list.