【发布时间】:2012-11-21 19:03:10
【问题描述】:
我想加密一个输入行,这行应该这样加密:
PASSWORD = ABCCDEF ,所以第一个输入的字母变成“A”并且那个字母保持这种状态,正如你所看到的,“S”和“S”都是C。然后我想要输入行和加密的行被保存到一个文件(使用pickle),并且应该保存加密密钥,以便我们以后可以解密它。
我知道如何使用pickle,所以那部分都很好,但是加密/解密是模糊的!
【问题讨论】:
我想加密一个输入行,这行应该这样加密:
PASSWORD = ABCCDEF ,所以第一个输入的字母变成“A”并且那个字母保持这种状态,正如你所看到的,“S”和“S”都是C。然后我想要输入行和加密的行被保存到一个文件(使用pickle),并且应该保存加密密钥,以便我们以后可以解密它。
我知道如何使用pickle,所以那部分都很好,但是加密/解密是模糊的!
【问题讨论】:
作为提示,您可能应该使用将每个字符映射到它的加密密码字符的字典。这是一个良好的开端。它遍历plain 中的每个字符,并将加密字符附加到新字符串中。现在您只需要考虑应该如何实现encryptor 映射(提示:给定其中的密钥数量,您可以分配下一个密码字符)。
plain = 'PASSWORD'
cipher = ''
encryptor = {}
for ch in plain:
if ch in encryptor:
# TODO: Implement so that encryptor[ch] = 'A' for the first letter,
# But encryptor[ch] = 'B' for the second etc
pass
cipher += encryptor[ch]
祝你好运,一定要为你的代码写一些测试!
【讨论】: