Cryptography With Python 简明教程

Cryptography with Python - ROT13 Algorithm

到目前为止,您已经了解了反向密码和凯撒密码算法。现在,我们来讨论 ROT13 算法及其实现。

Explanation of ROT13 Algorithm

ROT13 密码指的是缩写 Rotate by 13 places 。它凯撒密码的一个特例,其中移位始终为 13。每封信都移位 13 位,以加密或解密消息。

Example

下图形象地说明了 ROT13 算法流程 −

rot

Program Code

ROT13算法的程序实现如下 -

from string import maketrans

rot13trans = maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
   'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm')

# Function to translate plain text
def rot13(text):
   return text.translate(rot13trans)
def main():
   txt = "ROT13 Algorithm"
   print rot13(txt)

if __name__ == "__main__":
   main()

您可以在下图中看到 ROT13 输出 -

rot13

Drawback

ROT13算法使用13位移。因此,以相反方式位移字符非常容易解密密文。

Analysis of ROT13 Algorithm

ROT13加密算法被认为是凯撒加密的特殊情况。这并不是一种非常安全的算法,可以通过频率分析或仅仅尝试可能的 25 个密钥轻松破解,而 ROT13 可以通过位移 13 位进行破解。因此,它没有任何实际用途。