4. Détection de XOR mono-octet

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.)

Miroir du fichier texte

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}