使用方法
- 把明文或密文粘进输入框。页面打开时已预置
Meet me at the gate at noon,默认加密方向、位移 3,结果区直接显示密文Phhw ph dw wkh jdwh dw qrrq,不用先点按钮。 - 选方向:加密把明文往后推位移位,解密则往前拉。同一个位移 3,
A加密变D,解密时D变回A——内部等价于把位移取26 − 3 = 23再做一次加密。 - 位移填 0~25 的整数。位移 13 就是 ROT13,点「一键 ROT13」等价于把位移设为 13 再执行;ROT13 是自逆的,对密文再做一次即还原,无需切换方向。
- 拿到一段不知位移的密文时,点「穷举 26 种位移」,结果区会并排出 26 行,逐行找可读的那一行。例如密文
Khoor Zruog的可读行出现在位移 23:Hello World(26 − 3 = 23,与「用位移 3 加密」完全对应)。 - 全部转换完成后点「复制结果」带走;位移对照表支持导出 CSV 与 TSV 复制,方便查某一位移下
A与a的去向。
这个凯撒密码工具能解决什么问题
一是教学演示古典密码的第一个实例。凯撒密码是几乎所有密码学课程和 CTF 入门题的第一站,本页把位移、绕回、大小写独立、非字母保留这些规则逐条做实——你在正文里看到的每个结果都能在输入框里复现。
二是破译凯撒风格的密文。网络流传的谜题、游戏彩蛋、老论坛里藏的头,很多就是简单位移。26 个密钥全部穷举也就 26 行,肉眼挑出可读行即可,例如 Khoor Zruog 穷举到位移 23 就是 Hello World。
三是快速使用 ROT13。剧透保护、谜题提示里常见的 ROT13 不需要算位移、也不需要分方向,一键完成且再点一次即还原。四是核对位移表:写作业或出题时想知道「位移 7 下 a 变成什么」,对照表一行就给出答案,不用手数字母表。
本页不做这些事:不做多表替换与关键词代换(那是「维吉尼亚密码工具」的领域)、不做摩斯电码滴答声与点划转换(请用「摩斯电码代码转换」)、不做任何真正保密用途的加密。这种古典密码只有 26 种密钥(约 4.70 bit 熵),机器穷举瞬间即破,绝不能用来保护真实数据。
转写原理:模 26 循环位移、码点偏移与大小写独立处理
凯撒转写的核心是一段纯算术转写:对每个字符取码点,落在 A–Z(码点 65~90)就用 (码点 − 65 + 位移) mod 26 + 65 算新字符,落在 a–z(码点 97~122)就用 (码点 − 97 + 位移) mod 26 + 97;其余字符一律原样返回。写进实现里就是 String.fromCharCode(...) 配合取模运算,没有查表、没有第三方依赖。
为什么先减 65 或 97 再取模。直接对码点取模会把大小写和标点搅在一起:65 到 90 之间共 26 个码点,减去 65 后恰好归一到 0~25,加位移取模再补回 65,就完成了「在 26 个字母内部循环」。两个字母表各转各的,所以大小写永不互串——aBcDeF 位移 1 得到 bCdEfG,大写仍大写、小写仍小写。若只转写不区分,Z(90)加 3 会落到 93,那是 ] 而不是 C;取模绕回后 (25 + 3) mod 26 = 2,补回 65 得 C,这正是循环的由来。
位移 0~25 的取舍。字母表只有 26 个位置,位移 26 与位移 0 等价,位移 27 等价于 1,所以有效密钥空间就是 0~25 共 26 个,任何超过 25 的输入先取模再参与运算。26 种密钥折算熵只有 log2(26) ≈ 4.70 bit,对比 AES-128 的 2128 种密钥差了一百多个数量级——这就是这种古典密码只能教学、不能保密的数学原因。注意对比:真正的现代密码密钥空间在 2128 量级,两者之间隔着天文数字。
ROT13 是位移 13 的特例。13 正好是 26 的一半,加密与解密是同一个操作(26 − 13 = 13),所以它天然自逆:Hello 变 Uryyb,Uryyb 再变回 Hello。它常被用于剧透遮蔽而非保密。
解密方向在实现上就是再加密一次。位移 k 的解密等于位移 26 − k 的加密:位移 3 的密文用 23 解开(Khoor Zruog → Hello World),位移 25 的密文用 1 解开。非字母不受影响,因此空格与标点原样保留——这既是易用性优点也是安全缺陷:词长与词频模式全部暴露,配合穷举几乎不需要分析就能破。例如 你好, World! 123 位移 5 得到 你好, Btwqi! 123,数字、逗号、汉字与空格纹丝未动。
完整示例(数值仅作演示)
示例条件与页面打开时输入框里的内容完全一致:明文 Meet me at the gate at noon,加密方向,位移 3。逐段拆解:
- 整句 27 个字符,其中英文字母 21 个(全部被平移),空格 6 个(原样保留);
M(码点 77,序号 12)+ 3 = 序号 15 →P;e(101,序号 4)+ 3 = 序号 7 →h;末尾n(110,序号 13)+ 3 = 序号 16 →q;- 整句密文为
Phhw ph dw wkh jdwh dw qrrq,与结果区直出的内容逐字符一致; - 反向验证:把密文按解密方向、位移 3 再跑一次,应还原出原句。同理
Attack at dawn位移 3 得Dwwdfn dw gdzq,其中A+3=D、Z若出现则绕回为C。
穷举演示:对密文 Khoor Zruog 点「穷举 26 种位移」,位移 0 行是密文本身,位移 10 行是 Uryyb Jbeyq(即 Hello World 的 ROT13),位移 23 行出现可读的 Hello World——它就是答案,且与「用位移 3 加密」严格对应。
位移 0~25 对照表(加密方向)
下表给出每个位移下 A 与 a 的去向,其余字母按同一序号顺推(如位移 3 时 B→E、b→e)。解密方向读表反向即可,或用 26 − 位移 查加密列。
| 位移 | 加密时 A 变为 | 加密时 a 变为 | 说明 |
|---|---|---|---|
| 0 | A | a | 恒等,输出与输入相同 |
| 1 | B | b | 最小可见位移 |
| 2 | C | c | |
| 3 | D | d | 经典凯撒位移,据传尤利乌斯·凯撒用于军事信函 |
| 4 | E | e | |
| 5 | F | f | |
| 6 | G | g | |
| 7 | H | h | |
| 8 | I | i | |
| 9 | J | j | |
| 10 | K | k | |
| 11 | L | l | |
| 12 | M | m | 半程 |
| 13 | N | n | ROT13,自逆:再执行一次即还原 |
| 14 | O | o | |
| 15 | P | p | |
| 16 | Q | q | |
| 17 | R | r | |
| 18 | S | s | |
| 19 | T | t | |
| 20 | U | u | |
| 21 | V | v | |
| 22 | W | w | |
| 23 | X | x | 等于解密位移 3(26 − 3) |
| 24 | Y | y | 等于解密位移 2 |
| 25 | Z | z | 等于解密位移 1,Z 加密后绕回 C 是位移 3 的另一端 |
输入范围、边界与精度说明
- 位移只接受 0~25 的整数。填负数、超过 25 的数或小数都会被明确拒绝并说明允许范围,工具不会悄悄取模替你修正——出题或核对作业时,输入值与预期值不一致往往本身就是问题所在。
- 只有 26 个英文字母参与转写。数字、空格、标点、汉字、全角字母、带变音符的
éñ一律原样保留。保留是这种密码的定义而非本工具的简化:历史和教科书上的凯撒密码就只在 26 个字母内循环。 - 单次输入上限 10 万字符。转写是每字符一次取模运算,纯线性开销,10 万字符也在毫秒级完成;再长建议分段,结果区渲染几百万字符会拖慢页面。
- 穷举输出固定 26 行。对空输入点穷举会得到 26 行空结果,工具会直接拒绝并提示先输入密文;穷举始终按加密方向列出位移 0~25,解密场景从中挑可读行即可。
- 多行文本整体转写。换行符属于「非字母」原样保留,行结构不会乱;每行可以位移不同吗?不能——凯撒体制全篇一个密钥,逐行不同位移就变成了另一种密码体制,本工具不混用。
- 大小写独立循环,永不互串。
Z位移 3 绕回C、z位移 3 绕回c;不存在「大写绕到小写」的情况,因为两个码点区间各自取模。 - 安全边界要记牢。26 个密钥约 4.70 bit 熵,任何现代设备穷举都是瞬时的;加上空格与词频全部可见,它对哪怕最基础的频率分析也不设防。谜题、教学、混淆可以,保密不行。
常见问题
位移填 30 可以吗?为什么工具不让?
可以数学上等价于位移 4(30 mod 26),但工具要求 0~25 的原始值,不自动取模。原因很简单:出题与核对场景里,输入 30 还是 4 直接影响结果是否与答案一致,替你取模反而掩盖了输入错误。想用等价位移,自己减 26 再填即可。
为什么汉字和数字没被转写?
凯撒密码的定义只在 26 个英文字母内循环,这是历史原貌。汉字不在码点 65~90 与 97~122 两个区间内,数字也不在,实现按定义原样保留。如果你需要转写其他字母表,那已经是广义代换密码,超出它的范围。
穷举出来的 26 行,怎么判断哪一行是明文?
先看哪一行有常见英文单词,再看哪一行读起来通顺。位移式转写保留词长与标点,句子结构全部可见,通常一两眼就能锁定。若密文没有空格,可以结合高频字母试读:英文里 e 出现最多,密文中的高频字母大概率对应 e。
ROT13 和位移 13 是一回事吗?
是。ROT13 就是凯撒密码位移 13 的别名,因为 13 是 26 的一半,加密和解密完全重合,对文本做两次 ROT13 即还原原文。本页「一键 ROT13」按钮就是设位移 13 后执行,不需要切换方向。
解密时位移该填多少?
填加密时的那个位移,方向切到「解密」即可,工具内部自动换成 26 减去它。如果你忘了加密位移,直接用穷举:可读行所在位移 k 满足 26 − k 等于原加密位移,两种读法结果相同。
凯撒密码安全吗?能用它保护密码吗?
完全不安全。密钥空间只有 26 个(约 4.70 bit),穷举 26 行就结束了;词频分析甚至不需要穷举。它只适合教学、谜题和轻度混淆。要保护真实数据请用现代加密(如 AES-256),并用「安全密码生成器」类工具产生高熵密钥。
转换后大小写会变吗?多行会乱吗?
都不会。大写区间 65~90 与小写区间 97~122 各自独立取模,aBcDeF 位移 1 得 bCdEfG;换行符与空格同属保留字符,多行文本转写后行数与行内容结构不变,只有字母被平移。
输入的内容会被上传或保存吗?
不会。位移转写、穷举、对照表全部在页面里用纯算术完成,没有任何网络请求,也不写入浏览器存储。想自行验证,打开开发者工具的 Network 面板,多点几次「开始转换」,可以看到没有新请求发出。