gizmobench

Cryptogram Solver

Work through an A–Z substitution cryptogram with one-to-one letter clues, word patterns and manual corrections that update every occurrence. Search the shipped ENABLE dictionary within node and time limits, or explicitly validate your own complete mapping. Candidate validity and search completeness are shown separately, with plaintext copy and mapping JSON that includes the current puzzle context.

Substitution puzzle16 / 500 characters

A–Z letters are solved in uppercase. Spacing, punctuation and numbers stay in place. Punctuation separates dictionary words.

One cipher word and pattern per line. Use _ or ? for unknown letters. A pattern applies to every occurrence and shares the same one-to-one letter map.

Use 1 to 1,000,000 candidate-word attempts and 0.001 to 30 seconds. At most 20 complete candidates are retained. A limit can leave further candidates unexplored.

Manual preview; unvalidatedNo completed answer claimed
____ __ ___ ____
Unresolved or unvalidated work.
Underscores mark unknown cipher letters. A full manual map still requires the Validate button below.
CipherPlain
FUnresolved
IUnresolved
JUnresolved
TUnresolved
UUnresolved

ENABLE: 172,823 public-domain words. The exact list loads and is verified only after Find candidates. It may omit names and inflections; it contains no single-letter A or I entries.

Manual letter correction

Edit a cell to update every occurrence. Conflicting assignments are rolled back. Word-pattern clues remain constraints until you edit them above.

Cipher letters
5
Mapped letters shown
0 / 5
Word occurrences
4
Result
Unresolved / unvalidated

Enter clues or use an example. Find candidates loads the dictionary only when requested.

Dictionary not loaded. Manual validation needs no dictionary download. Only the static dictionary is requested. Ciphertext, clues and candidates stay in the local tool. Mapping JSON labels unresolved work explicitly and includes the current ciphertext and clue context.

Worked examples

  • Clued fixtureUIJT JT UIF UFTU; five clues
    THIS IS THE TEST
  • Repeated lettersABBA; A→N, B→O
    NOON; repeated letters agree
  • One-to-one conflictA→E and B→E
    Rejected: cipher letters cannot share E

Accuracy. Candidates depend on the ENABLE dictionary and your substitution clues. A complete candidate is not proof of the intended answer, and this tool does not crack arbitrary encryption.

Common questions

What kind of cryptogram can this solve?
The solver handles one-to-one substitutions of A–Z letters in ciphertext up to 500 characters. It solves letters in uppercase while preserving spacing, punctuation and numbers. Accented letters, other alphabets and hidden direction controls are rejected explicitly. It does not identify or crack arbitrary encryption.
How do letter clues and word patterns work together?
Enter letter clues such as A→N, B→O, and patterns such as UIJT: _H_S on separate lines. An underscore or question mark means an unknown letter. Patterns and letter clues constrain the same mapping. A repeated cipher letter always gets the same plaintext letter, and different cipher letters cannot share one plaintext letter. Conflicting manual cell edits are rolled back.
What is in the dictionary, and when is it downloaded?
Find candidates requests the already shipped public-domain ENABLE list from this site: 172,823 words and 1,743,363 bytes. The tool checks its byte size, SHA-256 digest and word-list structure before searching. The dictionary stays in this page's memory for reuse. Nothing loads on arrival, restore or ordinary field entry, and a failed load leaves manual mapping available.
Why might a familiar phrase have no dictionary candidate?
Every word in a dictionary candidate must appear in this exact ENABLE list. The list may omit names, abbreviations or inflections and has no single-letter A or I entries. Punctuation separates words, so contractions can also produce pieces absent from the list. Incorrect clues can rule out the intended phrase. You can still finish and explicitly validate a complete manual mapping without dictionary membership.
Does a complete candidate mean the search finished?
No. A complete dictionary candidate assigns every cipher letter consistently and satisfies every current clue, but other candidates may remain unexplored. Search is deterministic within its dictionary and selected limits: 1 to 1,000,000 candidate-word attempts, 0.001 to 30 seconds and at most 20 retained candidates. The result separately states whether enumeration finished or stopped at a limit. An unresolved branch is never labelled a complete candidate.
What happens when I cancel or change a clue?
Cancel stops the active dictionary load or worker and keeps your ciphertext and manual clues. Editing controls clears old candidates and invalidates pending copy operations. A later search reuses any successfully verified dictionary cache. Late callbacks cannot become a current result under changed clues.
What do the copy and download actions contain?
Copy candidate copies the selected complete plaintext. Mapping JSON includes ciphertext, plaintext or unresolved preview, current letter clues, word patterns, the one-to-one mapping and an explicit candidate or unresolved status. Dictionary candidates also record search completeness and dictionary provenance. Ordinary saved preferences contain the puzzle controls, not completed outcomes; restored text requires a fresh search or explicit manual validation.

Candidates depend on the ENABLE dictionary and your substitution clues. A complete candidate is not proof of the intended answer, and this tool does not crack arbitrary encryption.