This Javascript program is designed to quickly decode simple substitution cyphers (commonly called cryptoquotes), where each alphabet letter is replaced with a different letter. Unlike traditional computer decoding, where all 403,291,460,000,000,000,000,000,000 possible combinations of alphabet letters are tested in turn, this program attempts to decode cyphers using a combination of dictionary words and a few probabilities related to the English language (e.g. the letter E is the most-frequently-occurring letter). As such, the program will not always return a completely-decoded cypher (typically due to specific words not being present in the dictionary used), but it can still be a valuable tool for decoding these kinds of cyphers.

Note: occasionally, the program may lock up a web browser to the point where it will report ‘program not responding’. In this case, changing the ‘word match tolerance’ to ‘Low’ may speed up decoding. Shortening the amount of text to decode may also help. The program is typically fastest with text blocks between 15 and 20 words in length, although text blocks with numerous two- and three-letter words may still take longer to decode.

Program Fields

  • Initial possibilities: this is the number of different possibilities for the letter ‘E’ the program will try. The program tries the most-frequently-occurring letter in the cypher first.
  • Word match tolerance: controls how many letters of each encoded word must be ‘known’ before the program will attempt to match the word against its dictionary. Higher tolerance settings mean the program will make more guesses with less ‘known’ information, but the program will take longer to execute.
  • Letter fields: allows the user to guide the program, by pre-specifying individual letter matches.
  • Test for THAT: has the program check for words matching the pattern 1231.
  • Test for –ING: has the program check for words with suffixes matching -11234 or -11213.

For recommendations on best use of the program, see this post.

CypherSolve v1.1

Initial possibilities: Word match tolerance:
A: B: C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z: Test for THAT Test for --ING

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

CAPTCHA * Time limit is exhausted. Please reload CAPTCHA.