ROT13
ROT13(Rotate by 13)是一种最简单的字母替换密码,把英文字母表中的每个字母替换成它后面第 13 位的字母:A 变 N、B 变 O,以此类推。因为字母表共 26 个字母,正好是 13 的两倍,所以它有一个方便的特性:加密和解密是同一套操作——对一段文本连续做两次 ROT13,就会还原成原文。它可以看作固定位移量为 13 的凯撒密码(Caesar cipher)。
它的用途不是保密,而是把文字"轻度遮挡",避免被不经意地读到,常见于论坛的剧透内容、谜题答案、冷笑话或段子。使用时要记住几个要点:
- 只处理
A-Z和a-z,数字、标点、空格以及中文等非拉丁字符原样保留、不受影响。 - 它是"自反"的,因此界面上往往只需一个按钮,不区分加密与解密。
最常见的误区是把它当成加密手段:ROT13 没有密钥,算法完全公开,任何人一眼或一行代码就能破解,绝不能用于保护密码、隐私或任何敏感数据。它属于编码/障眼法,而非安全机制。此外它只能移位英文字母,若想处理更多可见 ASCII 字符可用 ROT47,需要真正保密则应使用 AES 等标准加密算法。
常见问题
ROT13 和凯撒密码是什么关系?
ROT13 就是位移量固定为 13 的凯撒密码。凯撒密码可以用任意位移量(1 到 25),而 ROT13 专指位移 13 这一种,因其加解密对称而被单独命名和广泛使用。
为什么 ROT13 加密和解密用同一个函数?
因为英文字母共 26 个,位移 13 再位移 13 正好等于位移 26,回到原位。所以对文本做两次 ROT13 就还原了,无需单独写解密逻辑。
ROT13 能用来保护敏感信息吗?
不能。它没有密钥、算法公开,任何人都能瞬间还原,只能起到防止无意窥见的遮挡作用。要真正保密请使用 AES、RSA 等加密算法。