4. Détection de XOR mono-octet
Detect single-character XOR
One of the 60-character strings in this file has been encrypted by single-character XOR.
Find it.
(Your code from #3 should help.)
Ce challenge est la continuité du précédent : le fichier fourni contient 327
lignes dont l'une d'elle a été chiffrée par XOR avec un caractère unique.
En reprenant nos fonctions de l'exercice précédent, on peut aisément écrire une solution :
from cryptopals import xor_single_char_breaker
file = open('4.txt', 'r')
lines = file.read().splitlines()
solutions = []
for line in lines:
solutions.extend(xor_single_char_breaker(line.encode()))
print(sorted(solutions, key=lambda d: -d['score'])[0])
En exécutant le script, on obtient la solution attendue :
{'char': '5', 'string': 'Now that the party is jumping', 'score': 152.77}