Cipher Detective
Paste unknown ciphertext and the Detective will walk you through the evidence — letter frequencies, Index of Coincidence, chi-square analysis, Kasiski examination — and show which cipher families best fit the data.
Prepare a transcription — preserve the evidence
Keep the original symbols, spacing and line breaks before making an analysis copy. This workspace is independent of the live Detective input above. A question mark represents one unreadable symbol; a token can also be marked uncertain or missing. This is a small transcription tool, not OCR.
Groups restart at each space or line break. Excluded symbols end a group too; an incomplete group stays visible. Review and explicitly clear annotations before editing the text or tokenization. A change of width does not resolve an uncertain symbol.
| Position | Token | Status |
|---|
Reading: Bernhard Esslinger, Learning and Experiencing Cryptography with CrypTool and SageMath (2024), Chapter 3 §§3.4–3.5.1. See the CrypTool Transcriber and Solver project for document transcription tools, and the reading companion.
Solve a substitution cipher by hand
Build a partial key from cipher letters to plaintext letters. A dot (·) means unknown. This mode assumes a one-to-one A–Z substitution; homophonic ciphers need different rules. Spaces and punctuation are preserved, and word-pattern matching assumes the supplied word boundaries are real.
Enter a plaintext letter beneath each cipher letter. Lock a mapping to keep it while trying suggestions; unlock it before editing. Changing ciphertext starts a fresh key, and Undo restores the previous text, key and locks.
Frequency suggestions fill empty, unlocked entries without displacing your assignments. They are guesses, not a solution. The separate Auto-Solve panel does not modify this desk or use its constraints.
A result is compatible only with this dictionary and your current key hypotheses. Even a sole candidate is not proof of the original message. No word boundaries are invented for continuous text. Pattern matching requires resolved A–Z words separated by whitespace; unknown symbols and punctuation must not be silently treated as boundaries. To keep the search responsive, use at most eight distinct cipherwords, each no longer than 20 letters.
Reading: Al Sweigart, Cracking Codes with Python (2018), Chapter 17: word patterns and intersecting mappings. This small original fixture teaches the constraint step, not the full book’s dictionary attack. Continue the reading trail.
Evidence
Suspects
Case Notes
Recommended Next Attack
🔒 Auto-Solve (Advanced)
Run every applicable solver against this ciphertext and rank the results by how English-like each candidate plaintext is. Works on Caesar, ROT13, Atbash, Vigenère, monoalphabetic substitution and columnar transposition. May take a few seconds for substitution.
What the Detective can’t tell you
- Short ciphertext (under ~60 characters) makes statistical analysis unreliable.
- English-language scores can mislead on non-English plaintext.
- Random-looking data may be encrypted, compressed or simply random. These letter-based heuristics cannot reliably identify a modern cipher, establish its security or prove that a sample is encrypted.
- Layered constructions and simplified machine models can confound single-pass identification.
- The Detective’s Auto-Solve can recover plaintext for Caesar, ROT13, Atbash, Vigenère, monoalphabetic substitution, and columnar transposition. For richer hand-tools and other ciphers, open the Codebreaker’s Workbench.