rot13 算法
密码描述
套用 ROT13 到一段文字上仅仅只需要检查字元字母顺序并取代它在 13 位之后的对应字母,有需要超过时则重新绕回 26 英文字母开头即可。A 换成 N、B 换成 O、依此类推到 M 换成 Z,然后序列反转:N 换成 A、O 换成 B、最后 Z 换成 M。只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其他字元都不变。因为只有在英文字母表里头只有 26 个,并且 26=2×13,ROT13 函数是它自己的逆反:
对任何字元 x:ROT13(ROT13(x))=ROT26(x)=x。
换句话说,两个连续的 ROT13 应用函式会回复原始文字(在数学上,这有时称之为对合(involution);在密码学上,这叫做对等加密(reciprocalcipher))。
python 实现
1 | def rot13(i): |