我有特别的 Python 加密技巧

标签:Python

虽说 Python 代码的可读性很高,但你能读懂下面的代码么?
# -*- coding: rot_13 -*-

cevag 'uryyb jbeyq!'.rapbqr('rot_13')
嗯,它只是个 hello world 而已。

比较奇怪的是它采用了 ROT13 编码,就是把 26 个英文字母的前 13 个字母与后 13 个字母的编码互换。
所以真正的代码就是:
print 'uryyb jbeyq!'.encode('rot_13')
而 'uryyb jbeyq!'.encode('rot_13') 的结果就是 'hello world!'。
另外,根据 ROT13 编码的定义,encode('rot_13') 和 decode('rot_13') 的结果其实是一样的。

当然,我们也能自己实现这样一个转换:
from string import ascii_lowercase, ascii_uppercase, maketrans


rot13_lowercase = ascii_lowercase[13:] + ascii_lowercase[:13]
rot13_uppercase = ascii_uppercase[13:] + ascii_uppercase[:13]
rot13_table = maketrans(ascii_lowercase + ascii_uppercase, rot13_lowercase + rot13_uppercase)

print 'Hello World!'.translate(rot13_table)  # Uryyb Jbeyq!

顺带一提,据说 Python 3 不支持这种文件编码,我还没测试过。

4条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?