【发布时间】:2016-06-13 05:05:18
【问题描述】:
我的 Vigenere 密码程序都归结为两个列表。一个是表示要加密/解密的消息字符的 ASCII 数字列表,另一个是用于解密/加密消息的密钥的 ASCII 数字列表。
对于加密:
encryption = [((x + y) % 26) + ord('A') if x < 128 else x for x, y in zip(msglist, keylist)]
用于解密:
encryption = [((x - y) % 26) + ord('A') if x < 128 else x for x, y in zip(msglist, keylist)]
如果我输入 'Python' 和密钥 'love' 进行加密,我得到:
GYAXLN
不幸的是,当我尝试使用相同的密钥解密“GYAXLN”时:
PEZNUT
这不是应该的。我认为我的数学有问题,但我不能完全正确,直到现在一直在尝试不同的数字来看看什么是有效的(我的数学不是最好的)。我在这里想念什么?不能全部在列表理解中完成吗?
【问题讨论】:
标签: python list encryption cryptography vigenere