atbashcipher.com

Cipher Tutorials8 min read

How to Identify an Unknown Cipher

By Jack Shi, Founder & Lead WriterView Jack Shi on LinkedIn

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 seeLikely cipher or encoding
Only 0 and 1 (in groups of 8)Binary
Only 0–9 and A–FHexadecimal
Dots . and dashes -Morse code
Numbers 1–26 with separatorsA1Z26 (letter positions)
Letters, digits, + /, often ending in =Base64
Letters only A–ZA substitution cipher (Caesar, Atbash, Vigenère…)
Grid or angular shapesPigpen / 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.

— Jack Shi, Cryptography Researcher

Common Misreads

  • Base64 vs hex. Both mix letters and digits. Hex uses only 0–9 and A–F; Base64 uses the full A–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 1215 is 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.

identify ciphercipher decoderwhat cipher is thisunknown ciphercipher identifier

Jack Shi

Founder & Lead Writer, Atbash Cipher Tool

Jack Shi builds and maintains free online cryptography, encoding, and text-transformation tools, and writes practical guides on ciphers, encoding, and hashing.

View Jack Shi on LinkedIn →

Related Articles