Как исправить ошибку словаря вне диапазона в «XOR»? - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь зашифровать, используя метод "XOR" в python. Я использую свой словарь и применяю этот алгоритм:

def crypt(Line,key):
   alpha = ' !@#^*()_+"№;:?-={}[]\|/<>.,~`1234567890zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBAяюэьыъщшчцхфутсрпонмлкйизжёедгвбаЯЮЭЬЫЪЩШЧЦХФУТСРПОНМЛКЙИЗЖЁЕДГВБА'
   new_Line = ''
   for i in range(len(Line)):
        code = alpha.find(Line[i]) ^ alpha.find(key[i])
        new_Line += alpha[code]
   return new_Line

Но когда я пытаюсь зашифровать символы: «П», «ъ», я получаю значение 236, которое превышает длину моего словаря, так какв нем всего 158 символов. Как исправить ошибку было бы, чтобы код декодировал однозначно. На данный момент есть идея расширить словарь (альфа).

...