Исходное шифрование выглядит следующим образом (что я уже сделал): для каждой буквы в ключе и каждой буквы в открытом тексте (они имеют одинаковую длину) вы вычисляете значения ascii, находите результат XOR, конвертируете эток десятичной дроби, добавьте 32 к этому значению и затем преобразуйте обратно в символ. Символ будет зашифрованным. ,
key = this is a cool key
plaintext = Wonderland is cool
ciphertext= C''7e;?a/dc&<lc$*5
def decryption(ciphertext,key):
plaintext = ""
for k in range(len(ciphertext)):
i = ciphertext[k]
j = key[k]
val = xor_calc(chr(ord(i)-32), chr(ord(j)-32))
val = chr(ord(xor)+ 32)
plaintext += val
после расшифровки я получаю: onderland это круто
, очевидно, должен совпадать с исходным открытым текстом, дополнительно с другими шифрами и ключами, в которых отсутствуют буквы. Мое шифрование работает хорошо, хотя мои ответы совпадают с тем, какими должны быть результаты. Буду признателен за любую помощь!
Забыл упомянуть, что у меня есть функция xor_calc, которая принимает шифр и ключевые буквы, конвертирует в ascii и вычисляет результаты XOR и возвращает обратно в char