我的讲师提出了一个问题,即实现ROT-13的编码器/解码器。我真的不明白这个问题。问题听起来像这样
在密码学中,凯撒密码是一种简单的加密技术,其中每个字母都被字母表中的一些固定数字位置的字母替换。例如,移位3时,A将被D替换,B将变为E,依此类推。该方法以朱利叶斯·凯撒命名,后者用它来与将军交流。 ROT-13是一个广泛使用的凯撒密码示例,其中移位为13.在Python中,ROT-13的关键可以通过以下字典表示:
这个问题已经给了字典:
key = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t', 'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a', 'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h', 'v':'i', 'w':'j', 'x':'k', 'y':'l', 'z':'m' }
我必须对此消息进行编码/解码:
pnrfne pvcure? v zhpu cersre pnrfne fnynq!
在我从多个网站进行研究后,这是我的编码。因为它有错误,我无法运行我的程序。谁能帮我解决问题?
def decodeThis(n):
key = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t', 'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a', 'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h', 'v':'i', 'w':'j', 'x':'k', 'y':'l', 'z':'m' }
for x in n:
v =x in key.keys()
if v == True:
py += (key[x])
else:
py += x
return py
Yes = decodeThis("pnrfne pvcure? v zhpu cersre pnrfne fnynq!")
print(Yes)