凯撒密码编码器
凯撒密码会将每个字母按固定数量位移 — 在 +3 位移下,A 变成 D,B 变成 E,依此类推,并在 Z 之后绕回 A。它以尤利乌斯·凯撒命名,据说凯撒在私人通信中使用过位移 3。它是最简单的替换密码,至今仍适用于谜题、课堂演示,以及经典的 ROT13 Usenet 约定。粘贴文本,选择位移,然后编码或解码。
凯撒密码的工作原理
-
1
输入明文或密文
任意英文文本。非字母字符(数字、标点、空格)会保持不变。大小写会被保留。
-
2
选择位移值
任意 1-25 的整数。位移 13 就是 ROT13 — 它是自己的逆运算。经典凯撒密码使用 3。
-
3
选择方向
编码向前位移;解码向后位移。使用位移 K 解码,等同于使用位移 26-K 编码。
-
4
查看结果
密文(或解码后的明文)会即时显示。一键即可复制。
凯撒位移是什么样子
对字母表应用位移 3:
Plain: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
示例:HELLO 使用位移 3 → KHOOR。用位移 3 解码 KHOOR(或用位移 23 编码)→ HELLO。
ROT13 — 自逆的位移
ROT13 使用位移 13。连续应用两次就会回到原始文本:HELLO → URYYB → HELLO。这让它非常适合在 1980 年代的 Usenet 帖子中隐藏剧透:同一个转换既能编码也能解码,而且不需要记住密钥。
安全性(或者说并不安全)
面对任何现代分析,凯撒密码在设计上就是容易被破解的:
- 暴力破解:只有 25 种可能的位移。全部尝试一遍,选择读起来像英文的结果即可。
- 频率分析:位移后的文本会保留字母频率。
E仍然是英文中最常见的字母;密文中最常见的字母,很可能就是E位移后的版本。 - 已知明文:只要知道哪怕一个原始字母,就能确定整个位移。
不要把它用于任何需要保护的内容。它适合教学,不适合实际保密。
变体与扩展
- ROT5:只位移数字(0-9)。在 ROT18 中会与 ROT13 搭配使用。
- ROT47:位移 94 个可打印 ASCII 字符;像 ROT13 一样是自逆的。
- Vigenère:带关键词的凯撒密码,因此每个位置使用不同的位移。破解难度高得多。
- Atbash:交换 A↔Z、B↔Y,依此类推。相对于其希伯来历史用法来说,它是一种固定式替换。
课堂用途
凯撒密码是密码学入门课程第一周的常见内容:它无需复杂数学,就能引入模运算、替换、频率分析以及密钥的概念。它也是许多 CTF“初学者密码学”挑战的解法。
常见问题
苏埃托尼乌斯记载,凯撒在通信中使用位移 3。据称奥古斯都使用位移 1(A → B、B → C、Z → A 或 AA,取决于不同资料)。
不能。经典凯撒密码定义在 26 个字母的罗马字母表上。带重音符号的字母(é、ñ、ü)会保持不变。如果需要多字母表密码,应使用现代替换方案。
因为方便。它能以很轻量的方式隐藏文本(剧透、谜题答案、轻度粗话过滤),同时解码又极其简单。它从来不是为了安全而设计的 — 只是轻度混淆。
可以,而且很容易。尝试全部 25 种位移,找出可读的英文即可。较长的密文(20+ 个字符)通常几乎没有歧义;非常短的密文可能会有多个看似合理的位移。
相关工具
Atbash 密码编码器
使用 Atbash 密码编码或解码文本,这是一种把 A-Z 映射为 Z-A 的希伯来替换法。同一个操作既可加密也可解密。
A1Z26 密码编码器
使用 A1Z26 密码(A=1, B=2, ... Z=26)编码文本,或把数字序列解码回字母,并可自定义分隔符。
AES 加密 / 解密
使用 OpenSSL AES cipher 加密和解密低风险文本。口令会用 SHA-256 哈希,Base64 输出包含 IV 加密文。
Base85 编码器和解码器
编码和解码 Adobe Ascii85(PostScript/PDF)或 Z85(ZeroMQ)变体的 Base85。对二进制数据比 Base64 更紧凑。
bcrypt 哈希生成器
生成 bcrypt 哈希,或用明文密码对照已有的 bcrypt 哈希进行验证。一个工具内并排支持生成和验证。
Base32 编码器和解码器
使用 RFC 4648 字母表编码和解码 Base32 字符串。适用于 TOTP 密钥、大小写不敏感的令牌和人工输入的标识符。