解码python rot13字符串

2024-07-02 10:03:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中有一个rot13编码的字符串,我必须对它进行解码:

"Gur dhvpx oebja sbk whzcrq bire gur ynml qbt"

可以用python来做吗?我找不到任何方法来做这件事。在

请帮忙!在

这就是我尝试过的:

^{pr2}$

Tags: 方法字符串编码解码rot13pr2gursbk
2条回答
import string #use this package
utf8=string.maketrans("NOPQRSTUVWXYZnopqrstuvwxyzABCDEFGHIJKLMabcdefghijklm","ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz") #this are the related alphabets
print(string.translate("Gur dhvpx oebja sbk whzcrq bire gur ynml qbt", utf8))

要解码一个rot13编码的字符串,比如s,只需再次获取该字符串的rot13,即计算rot13(s)。在

如果您不熟悉如何在python中计算rot13,那么尝试一下google一下,您一定会找到一个。我在google上找到了一个非常有效的解决方案:https://stackoverflow.com/a/3269756/3293087[注意,它只对python2有效,而对python3不起作用,因为string.maketrans从python3中删除了。]

为了完整起见,我将在这里编写代码:

# Python 2 solution
import string
rot13Table = string.maketrans( 
    "ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz", 
    "NOPQRSTUVWXYZnopqrstuvwxyzABCDEFGHIJKLMabcdefghijklm")
rot13 = lambda s : string.translate(s, rot13Table)

print rot13("Hello World!") 
# Outputs "Uryyb Jbeyq!"

注意:我不打算编写与OP最初发布的内容相对应的解码字符串,因为它非常具有攻击性和恐同性。任何有兴趣的人都可以自己做。在

Update:我还从this SO answer找到了一个适用于python2&3的解决方案。{{{cd1>里面有一个 ^{pr2}$

更新2:由于操作人员坚决要知道答案,而且似乎没有安装python,所以我创建了一个JS解决方案https://codepen.io/anon/pen/zPYVQP。其他请谨慎行事。在

相关问题 更多 >