好吧,以便序言我正在嘗試編寫一個採用字符串輸入的加密程序,使用ord()函數將每個字符轉換爲整數,然後使用僞隨機生成的數字序列對其進行轉換。它本質上是一個vigenere密碼程序,我已經很少記下它了。我只在解密功能方面遇到問題,因爲我不知道如何從加密消息中減去密鑰,以便我可以解密它。如何在Python中將正整數列表轉換爲負整數?
def input1():
mes = raw_input('> ').upper()
shiftl = []
while len(mes) > len(shiftl):
shiftl.append(random.randint(1,26))
return mes, shiftl
def encrypt(x,y):
h = []
for item in x:
h.append(ord(item) - 65)
e = [sum(i) for i in zip(h,y)]
return e
def decrypt(e, y):
u = [sum(i) for i in zip(e,-(y))]
d = []
for item in u:
d.append(chr(item + 65))
return d
這是我需要幫助的路線。
u = [sum(i) for i in zip(e,-(y))]
我試圖簡單地放在列表前面,但一元操作符不能在列表中工作。那麼對於我來說,從加密消息中減去這個列表的最好方法是什麼?
你可以得到一個負數通過從零減去正數。 '-3 == 0 - 3' – MattDMo