Cipher Identifier
Found a suspicious string in a CTF puzzle, a log file or an old document and can’t tell whether it’s Base64, hex, binary, Morse code or something else? Paste the text and the identifier runs character-set and structure checks to rank the most likely encodings and ciphers. A good first step before reaching for dedicated decoders.
How the cipher identifier works
-
1
Paste the ciphertext
Any length. Very short strings (< 20 chars) give weaker signals; longer text enables stronger classification.
-
2
Character-set analysis
Distribution of letters, digits and symbols narrows the candidates (all hex, all base64 alphabet, all uppercase Latin, etc.).
-
3
Signature matching
Length rules (even hex, base64 blocks of 4, 32/40/64 hex characters for hashes), separators (dots for JWT, dots and dashes for Morse) and well-known prefixes (eyJ, $2b$) are checked against known signatures.
-
4
Ranked guesses
All matching candidates are ranked by confidence and shown as percentages, so you know which decoder to try first.
Detection heuristics
| Clue | Likely cipher / encoding |
|---|---|
Only A-Z a-z 0-9 + / =, length multiple of 4 |
Base64 |
Only 0-9 a-f, even length |
Hex |
Only 0-1, 8 or more digits |
Binary |
| Only dots, dashes, slashes and spaces | Morse code |
| Uppercase Latin letters only, 5+ letters | Caesar or substitution cipher |
| 20+ Latin letters, no spaces | Monoalphabetic cipher |
| Mixed-case Latin letters | Plain text, probably not a cipher |
Three dot-separated segments, starts with eyJ |
JWT token |
Starts with $2a$, $2b$ or $2y$ |
bcrypt hash |
| Exactly 32 hex characters | MD5 hash |
| Exactly 40 hex characters | SHA-1 hash |
| Exactly 64 hex characters | SHA-256 hash |
Giveaways beyond characters
- Base64: blocks of 4,
=padding at the end, includes+and/. - Caesar or substitution: uppercase Latin letters, no digits. The frequencies are those of the plaintext, just shifted.
- Morse: dots, dashes, slashes and spaces only.
- JWT: three segments separated by dots, usually starting with
eyJ. - Hashes (MD5/SHA): fixed-length hex (32 chars for MD5, 40 for SHA-1, 64 for SHA-256). Not reversible, the identifier flags this so you don’t try to “decode”.
- Binary: long runs of 0 and 1, often grouped in eights.
Limits of automated identification
- Short inputs (<10 chars): confidence is low across the board. Could be anything.
- Custom XOR with a one-time pad: indistinguishable from random without the key. The identifier will return no match.
- Multiple layers: a common CTF trick is Base64 → reverse → Caesar → hex. Peel one layer at a time.
- Non-English source language: the Latin-letter checks still apply, but “plain text” is only a guess; the identifier does not do language detection.
Confidence scoring
Each candidate carries a fixed confidence based on how specific its signature is. Above 80%: probable. 50-80%: plausible. Below 50%: long shot. Multiple matches usually mean either a short input or a hybrid cipher.
Frequently Asked Questions
Every cipher identification technique relies on statistical regularities, and statistics need enough data to be reliable. Under 20 characters, many ciphers look identical; 50+ characters give solid signals.
It only suggests the most likely scheme. Decoding happens in the dedicated decoder tools, and some decodings need a key you have to supply.
Check the character set first (what letters/symbols appear), then the length and structure. If it’s still unclear, try common-suspect decoders (Base64, hex, Caesar) one by one, on a CTF, frequency + guessing usually cracks it within a handful of attempts.
Probably not as a named match: it returns no candidates or a low-confidence guess. Compare the alphabet and structure of your ciphertext against the heuristics table above to reverse-engineer simple homemade schemes.
Related Tools
A1Z26 Cipher Encoder
Encode text using the A1Z26 cipher (A=1, B=2, ... Z=26) or decode a number sequence back to letters, with customizable separator.
AES Encrypt / Decrypt
Encrypt and decrypt low-risk text with AES OpenSSL ciphers. The passphrase is hashed with SHA-256 and the Base64 output is IV plus ciphertext.
Base32 Encoder and Decoder
Encode and decode Base32 strings using the RFC 4648 alphabet. Useful for TOTP secrets, case-insensitive tokens and human-typed identifiers.
Atbash Cipher Encoder
Encode or decode text with the Atbash cipher, a Hebrew substitution that maps A-Z to Z-A. Same operation encrypts and decrypts.
Base64 File Encoder
Encode any file (PDF, ZIP, image, executable) to Base64 text for embedding in JSON, email, YAML or data URIs. Runs locally, no upload.
Caesar Cipher Encoder
Encrypt and decrypt text using the Caesar cipher. Any shift 1-25, supports ROT13 as a special case, preserves punctuation and case.