凯撒密码编码器
凯撒密码会将每个字母按固定数量位移,在 +3 位移下,A 变成 D,B 变成 E,依此类推,并在 Z 之后绕回 A。它以尤利乌斯·凯撒命名,据说凯撒在私人通信中使用过位移 3。它是最简单的替换密码,至今仍适用于谜题、课堂演示,以及经典的 ROT13 Usenet 约定。粘贴文本,选择位移,然后编码或解码。
凯撒密码的工作原理
-
1
输入明文或密文
任意英文文本。非字母字符(数字、标点、空格)会保持不变。大小写会被保留。
-
2
选择位移值
任意整数都可以;使用 -3 这样的负值即可解码。位移 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+ 个字符)通常几乎没有歧义;非常短的密文可能会有多个看似合理的位移。
相关工具
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
bcrypt 哈希生成器
生成 bcrypt 哈希,或用明文密码对照已有的 bcrypt 哈希进行验证。一个工具内并排支持生成和验证。
Base58 编码器和解码器
编码 UTF-8 文本或十六进制字节,并使用 Bitcoin、Ripple 或 Flickr 字母表安全解码 Base58。
A1Z26 密码编码器
使用 A1Z26 密码(A=1, B=2, ... Z=26)编码文本,或把数字序列解码回字母,并可自定义分隔符。
校验和验证器
计算任意文本的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 或 CRC32 校验和,并与预期值比较,获得明确的匹配或不匹配结果。
CSR 生成器
生成 PEM 格式的证书签名请求及对应的 RSA 私钥。指定通用名称、组织字段和密钥大小(2048、3072 或 4096 位)。
此工具还提供其他语言版本
- Codificador de Cifrado César [ES]
- เครื่องมือเข้ารหัสซีซาร์ [TH]
- Caesar-cijfer encoder [NL]
- 카이사르 암호 인코더 [KO]
- Encodeur de César [FR]
- Caesarchiffer-kodare [SV]
- Encoder Sandi Caesar [ID]
- Codificador de Cifra de César [PT]
- Caesar-Chiffre-Encoder [DE]
- Sezar Şifreleyici [TR]
- Koder szyfru Cezara [PL]
- Caesar Cipher Encoder [EN]
- シーザー暗号エンコーダー [JA]
- Bộ mã hóa mật mã Caesar [VI]
- مشفّر قيصر [AR]
- Cifrario di Cesare [IT]
- Кодировщик шифра Цезаря [RU]