如何实现ROT-13的编码器和解码器?

时间:2017-08-23 00:10:33

标签: python decode encode rot13

我的讲师提出了一个问题,即实现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)

0 个答案:

没有答案