我一直致力于一个程序,该程序将采用纯文本文件,对邮件进行加密,然后解密邮件。解密消息时,文本文件中的逗号将替换为不同的ASCII字符。有没有人有解决方案或能帮我解决问题?
请注意:我已将我的代码包含在pastebin中,因为它很长,而且我不知道我可以发布哪些部分来指定问题。谢谢!
答案 0 :(得分:0)
不幸的是,我认为您需要更改算法而不是仅修复实施中的错误。您的加密算法似乎只更改ASCII值加finalNumber
超过126的字符。通常,这意味着您无法可靠地判断字母是否已加密。例如,在encrypt
中,此块
added = finalNumber + valLetter
if added > 126:
subtracted = added - 94
encrypted += chr(subtracted)
else:
encrypted += chr(valLetter)
会使一些字母重叠。假设finalNumber
是30
。要加密'a'
,即ASCII 97,added=127
。因此,subtracted=33
和'!'
将写入encrypted
。但是,当您对'!'
本身进行加密时,added
= 33+30
= 63
不大于126
,因此'!'
将被复制。当您尝试解密时,您将无法判断加密文本中的'!'
是否应解密为'a'
或'!'
。
This question是关于在Python中构建一个Caesar密码,这似乎是你想要做的。我建议从那里开始。祝你好运!
(注意:未经测试;此答案仅基于阅读来源。)