Perform frequency analysis with python
pip install freqens
# break single byte xor encryption
from freqens.analyzer import EnglishAnalyzer
def single_byte_xor(text, byte):
return "".join( chr(c ^ byte) for c in bytearray(text) )
with open("ciphertext.txt") as ciphertext_file:
ciphertext = ciphertext_file.read()
analyzer = EnglishAnalyzer()
possible_plaintexts = ( single_byte_xor(ciphertext, byte) for byte in range(256) )
answer = analyzer.choose_best(possible_plaintexts)
print answer[0] # Solution !!!
Get started here
Read them at readthedocs