我正在用Python編寫一個程序,它將採用二進制代碼片段並根據一個密鑰對其進行加密。如果代碼片段比密鑰短,它必須取得密鑰的最後一位,因此是雙反。當我嘗試將最後一個關鍵字添加到空白列表時,我的問題就出現了,它給了我「列表索引超出範圍」的錯誤。代碼如下:「列表索引超出範圍」錯誤
def OTP(msg,clave):
encList = []
encr = ''
clist = list(clave)
clist.reverse()
cutlist = []
mlist = list(msg)
mlist.reverse()
for i in range(len(msg)):
cutlist.append(clist[i])
for i in mlist:
for j in cutlist:
if i == j:
encList.append(0)
if 1 != j:
encList.append(1)
encList.reverse()
for i in encList:
encr += str(encList[i])
return encr
clave = '000000010011010010001001000110110011001101010011100101010000101100111110000010100000011010010000101100000101100011010110100000100110001011001101101110110101000010000010100101000101101101010010001100001100100010111111111110010011101110010101110100111110000001101111110010000000101011000101111110100100101000110010111001100110011010100011011001101010011111100101'
msg = '01101000011010000110100001101000'
cript = OTP(msg,clave)
rev = OTP(cript,clave)
print(rev)
我給它的消息的長度,這應該是更長的鍵的範圍之內的範圍。一如既往,任何幫助將不勝感激。
你在用什麼語言? –
我使用Python(對不起,忘了提及)。我單獨嘗試了一些代碼,並且它們工作正常。 –
_「如果有人想知道如何(或者想要我刪除這個問題),請告訴我。」是的,其中任何一個都很好,謝謝。我只是不想看到一個問題沒有答案:-) – Kevin