Substitution & shift cipher workbook
Compare frequencies, test a hypothesis, and keep your own analysis in one place.
Ciphertext input
Default ciphertext loaded and analyzed. Paste your own text to analyze another message.
Ciphertext → plaintext
Use the floating substitution panel to test letters. Unknown letters appear as _. Hover over a boxed plaintext word to highlight its ciphertext.
Ciphertext
Partial plaintext
Possible Caesar outputs
Shift numbers decrypt by moving backward around A–Z. Enter any cipher → plaintext letter in the floating panel to infer the shift, or click a shift number below.
| Shift | Possible plaintext |
|---|
Words are runs of A–Z letters; spaces and punctuation separate words. Counts include repeated occurrences. Each percentage uses its own table’s total, including rows outside the displayed top results.
Ciphertext & English comparisons
Compare your patterns with Norvig’s English corpus analysis. Each pair is ranked independently by frequency; matching rows do not imply a substitution. Expected counts scale English rates to your sample. Green rows = all letters filled, unverified
Sources & calculation details
The English reference rates use the linked Norvig word counts. They are comparison aids, not a substitution key or a prediction of the correct plaintext. No automatic substitutions are made.
Underlying word counts · Reference data is bundled locally; this page makes no network requests.
Overall letter sequences · includes windows across word boundaries
These match the original script’s method: remove all spaces and punctuation, then count overlapping windows.