从Zen of Python看ROT13加密算法

Zen of Python

我们首先找到著名的Python之禅存放位置。

打开之后发现通篇代码长这样:

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print "".join([d.get(c, c) for c in s])

起初我还以为是什么其他国家的语言,后来才知道,作者这是用了简单的ROT13加密算法

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

这四行很好理解,也就是ROT13的核心思想所在:
将A→Z,a→z中每个字母往后移13位,此即ROT13算法。
ROT13(回转13位)是一种简易的替换式密码算法。它是一种在英文网络论坛用作隐藏八卦、妙句、谜题解答以及某些脏话的工具,目的是逃过版主或管理员的匆匆一瞥。ROT13 也是过去在古罗马开发的凯撒密码的一种变体。ROT13是它自身的逆反,即:要还原成原文只要使用同一算法即可得,故同样的操作可用于加密与解密。该算法并没有提供真正密码学上的保全,故它不应该被用于需要保全的用途上。它常常被当作弱加密示例的典型。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 模糊的月已开始有些明朗, 余晖还在空中飘荡着。 忽然间, 一群鸟成人字形飞过上空, 引得无数思绪在心头。 青空下,...
    伞曲阅读 3,056评论 0 2
  • 我甚至想过那是怎样的一种久别重逢 我会说什么 你又会说什么 是握手是拥抱 还是点头示意匆匆离去 如果四目相对 是躲...
    哀慕熙荣阅读 1,094评论 0 1
  • 早晨上完早勤吃过早点,去中医医院接老娘,老娘也正好拿完药,回到家后本打算补补觉,可是一看到烁烁又没有了困意,十一点...
    易如人生阅读 1,252评论 0 0
  • 三舅家有只猫,乖得很。 每天晚上三舅下班,它都会出去接三舅,然后和三舅一起回家。对于离异的三舅来说,这只猫给了三舅...
    析鹭阅读 3,203评论 3 3

友情链接更多精彩内容