好吧,作为序言,我正在尝试编写一个加密程序,该程序接受字符串输入,使用 ord() 函数将每个字符转换为整数,然后使用伪随机生成的数字序列对其进行移位。它本质上是一个维吉尼亚密码程序,我几乎已经掌握了它。我只是在解密功能方面遇到了麻烦,因为我不知道如何从加密消息中减去 key 以便我可以解密它。
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))]
我尝试简单地将 - 放在列表前面,但一元运算符不适用于列表。那么我从加密消息中减去此列表的最佳方法是什么?
最佳答案
如果您有一个列表并且想要更改内容,请使用带有切片分配的列表理解:
a = [1, 3, 5]
a[:] = [-1*x for x in a]
print a
其输出将是:
[-1, -3, -5]
关于python-2.7 - 如何在Python中将正整数列表转换为负整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33587980/