Python 如何修复“中的词典超出范围错误”;异或;?
我正在尝试使用python的“XOR”方法进行加密。我使用字典并应用此算法:Python 如何修复“中的词典超出范围错误”;异或;?,python,python-3.x,xor,Python,Python 3.x,Xor,我正在尝试使用python的“XOR”方法进行加密。我使用字典并应用此算法: def crypt(Line,key): alpha = ' !@#^*()_+"№;:?-={}[]\|/<>.,~`1234567890zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBAяюэьыъщшчцхфутсрпонмлкйизжёедгвбаЯЮЭЬЫЪЩШЧЦХФУТСРПОНМЛКЙИЗЖЁЕДГВБА' new_Line
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
def crypt(行,键):
阿尔法='@#^*()_+"№;:?-={}[]\\\/,`1234567890ZYXWVUTSRQPONLKJIHGFEDCBAZYXWVUTSRQPONLKJIHGFEDCBAю
新行=“”
对于范围内的i(len(Line)):
代码=alpha.find(第[i]行)^alpha.find(第[i]键)
新行+=alpha[代码]
返回新行
但是当我尝试加密字符:“П”,“ъ”时,我得到一个236的值,这超过了我的字典的长度,因为它只有158个字符。如何修复这个错误是代码可以毫不含糊地解码。目前,有一个扩展字典(alpha)的想法.解决此问题的典型方法是将文本编码为UTF-8,并加密定义范围为0-255的字节。@klaus-d,好的,但如何修复代码以使用给定的词典?