Repeating-key XOR — A repeating byte key, XORed across the message. Vigenere over bytes.
XOR with a repeating byte key. Key length from normalised Hamming distance, then per-byte frequency analysis.
A worked example§
Encrypting a sample with the cipher itself, at build time:
MEET ME BY THE OLD CLOCK TOWER AT DAWN
Key: KEY
produces the ciphertext
06001c1f65140e651b12650d03007904091d6b06150406126b11161c000b6b040d6b01181c0b
This example is generated by running the cipher when the page is built, and the round trip is checked, so it always matches what the solver does.
How it is broken§
Key length from normalised Hamming distance between blocks, then each key byte by frequency analysis of its coset.
History and context§
The cipher behind a long line of broken products, and still the answer when a vendor says the data is 'encrypted' without naming an algorithm.
See also§
Browse every cipher in the Byte-level ciphers family, read the history of codebreaking, or return to the wiki main page.
Frequently asked questions§
How is the Repeating-key XOR broken?
Key length from normalised Hamming distance between blocks, then each key byte by frequency analysis of its coset.
What key does the Repeating-key XOR use?
byte string. The keyspace is unbounded in practice.
How much ciphertext do I need?
At least 16 characters for this solver to attempt it; short messages can be readable and still not be proof.
Can I break a Repeating-key XOR on this page?
Not with the browser build, which targets the common puzzle families. The desktop version searches it: see the Windows app page.