凯撒密码
凯撒密码(Caesar cipher,又称移位密码、恺撒密码)是最古老的替换加密方法之一,因古罗马恺撒大帝用它传递军令而得名。规则很简单:把明文里的每个字母沿字母表移动固定位数,到末尾时循环回开头。恺撒本人用的偏移量是 3,即 A→D、B→E、Z→C;解密时反向移动同样位数即可。
它的原理可用一行取模运算概括:c = (p + k) mod 26,其中 p 是字母序号,k 是偏移量。常见的 ROT13 就是 k=13 的特例——因为字母表共 26 个字母,加密与解密是同一套操作,连做两次 ROT13 就会还原。实现时通常只处理英文字母,数字、标点保持不变,并需分别处理大小写。
使用要点与常见误区:
- 它是古典位移密码,不是安全加密,更不是哈希——密钥仅 25 种,暴力枚举瞬间即可破解。
- 作为单表替换密码,字母频率保持不变,用频率分析同样容易破译。
- ROT13 多用于论坛遮挡剧透或答案,只求「不被一眼看到」,没有任何保密强度。
常见问题
凯撒密码和 ROT13 有什么区别?
ROT13 就是偏移量固定为 13 的凯撒密码。由于英文字母共 26 个,13 的两倍正好是 26,所以对同一段文本做两次 ROT13 会还原,加密和解密用的是同一个函数。
凯撒密码安全吗?能用来保护密码或敏感数据吗?
不能。它的密钥只有 25 种,写个循环几毫秒就能全部试完;即使不知道偏移量,用字母频率分析也能轻松破解。它只适合教学演示或遮挡剧透,绝不能用于真正的加密。
它被归到「哈希加密」分类,那它是哈希算法吗?
不是。凯撒密码是可逆的替换密码,知道偏移量就能完整还原明文;而哈希是单向、不可逆的。这里只是按站内工具做的归类,它本质上属于古典对称密码。