У меня есть список зашифрованных байтов XOR, записанных в шестнадцатеричном формате (содержится в «cipher.txt», по одному байту в строке), и я знаю, что используемый ключ XOR — это один байт. Поэтому я пытаюсь использовать метод грубой силы следующим образом:
f = open("cipher.txt", "r")
ciphers = f.readlines()
f.close
for x in range(0, 255):
key = bin(int(x))[2:]
for line in ciphers:
w = bin(int(line, 16))[2:]
y = int(w)
z = y ^ x
print chr(z),
print ""
Там мои результаты (z) не остаются бинарными. Вместо этого я получаю такие результаты, как «10010084». Если я не использую часть «y = int (w)», я получаю «неподдерживаемый тип (ы) операнда для ^: «str» и «int» в качестве ошибки, хотя я не понимаю, почему, поскольку определение переменной похоже на «ключевую» переменную, которая работает.
Я подозреваю, что в моем коде есть одна большая действительно глупая ошибка, из-за которой он не работает. Кто-нибудь может посоветовать?