Как было сказано в предыдущем ответе, вы переопределяете bytes
, создавая переменную с тем же именем.
Я бы предложил использовать элегантные функции и библиотеки python, избегать индексации и оптимизировать код
import itertools as it
def repeating_key_xor(message_bytes, key):
for byte, k in zip(message_bytes, it.cycle(key)):
yield k ^ byte
def main():
key = b"ICE"
message = b"Burning 'em, if you ain't quick and nimble\nI go crazy when I hear a cymbal"
ciphertext = bytes(repeating_key_xor(message, key))
print(ciphertext)
if __name__ == '__main__':
main()
, который производит
b'\x0b67\'*+.cb,.ii*#i:*<c$ -b=c4<*&"c$\'\'e\'*(+/ C\ne.,e*1$3:e>+ \'c\x0ci+ (1e(c&0.\'(/'