HandyTools Hub

凯撒密码编码/解码器

使用经典凯撒密码(移位密码)对文本进行编码和解码。包含 ROT13 和暴力解码器。

100% 客户端处理

- +

暴力解码 (尝试所有 25 种移位)

凯撒密码是大多数人学过的第一种替换密码,也是看清「秘密方法不等于安全性」的最直观例子。本工具能在 1 到 25 的任意位移上编码和解码文本,提供一键 ROT13 切换,并能把未知位移的全部 25 种可能解码并排显示,实现暴力破解。

凯撒位移的原理

规则只有一个模 26 的加法。把字母编号为 A=0 到 Z=25,位移为 k 时:

encoded = (letter + k) mod 26
decoded = (letter - k) mod 26

模 26 让字母表首尾相接:X 位移 4 得到 B,而不是越过字母表末尾。工具把解码方向算作 (26 - k) mod 26 再做加法,这在代数上等同于减去 k。

大小写得以保留,是因为大写和小写分别以不同的基准处理:大写从 65(‘A’)起算,小写从 97(‘a’)起算。超出这两个范围的字符原样附加。

实操示例:“ATTACK AT DAWN”

位移 3,据说是尤利乌斯·凯撒用过的那一档:

步骤结果
明文ATTACK AT DAWN
每个字母 +3DWWDFN DW GDZQ
用位移 3 解码ATTACK AT DAWN

对同一段文本应用 ROT13 得到 NGGNPX NG QNJA。再跑一次 ROT13 就回到 ATTACK AT DAWN,因为 13 + 13 = 26,而 26 mod 26 = 0。在暴力破解面板里试位移 13,你会看到这两行是唯一可读的一对。

如何使用本工具

  • 在左侧框中输入或粘贴文本,输出随输入更新。
  • 移动位移滑块、输入数字,或用 - 和 + 按钮选择 1–25。
  • 用顶部两个按钮在编码与解码之间切换。
  • 点击 ROT13 直接跳到位移 13。
  • 在解码模式下打开暴力破解面板,以网格查看全部 25 种解码;与当前位移对应的一行会高亮。
  • 用 Swap 把结果移回输入框并反转方向,或用 Copy 把输出带走。

数字、标点和空格绝不会被转换,这就是上例中词边界一点没变的原因。

暴力破解,以及为什么它并不安全

只有 25 种可能的密钥时,未知位移不是一道难题,而是一次查表。工具对 1 到 25 的每个值调用一次位移函数并列出结果,剩下的唯一挑战是辨认明文,而语言让这件事很容易:正确的那一行就是含有真实单词的那行。如果消息没有空格且混用多种语言,频率分析也能达到同样目的——寻找英文字母的典型分布,其中 E、T、A、O、I、N 占主导。

凯撒密码是一种密钥空间仅 25、映射固定的替换。现代加密需要它欠缺的两个特性:密钥大到穷举搜索不可行,以及即使算法公开也难以分析的构造。相比之下 AES 使用 128 位或 256 位密钥,其安全性不依赖攻击者不了解其工作原理。绝不要用凯撒位移或 ROT13 来保护密码、个人数据或任何重要信息。 真正需要保密时,请使用 AES 加密并把输出当作二进制数据处理。

与其他简单密码的对比

凯撒位移是古典密码家族中最简单的一员,把这些密码放在一起看,就能明白每一种为何被取代。

密码密钥密钥空间弱点
凯撒单个位移25穷举搜索与频率分析
Atbash无(固定反转)1根本没有密钥,知道方法即能读懂
ROT13固定位移 131凯撒的特例,自逆且极易还原
Vigenère重复关键词很大被 Kasiski 检验和重合指数破解
AES-256256 位二进制密钥2^256正确使用下无已知实际攻击

Atbash 把 A 映射到 Z、B 映射到 Y,依此类推;它是换了伪装的凯撒位移,提供的保护更少。Vigenère 是有意思的进步,因为重复关键词能击败直白的频率分析,这也是它流行了几个世纪的原因——但重复本身会泄露密钥长度,一旦密钥长度已知,消息就会瓦解。像 AES 这样的现代分组密码彻底消除了重复,使输出与随机数据无法区分。

仍然适用的场景

  • 谜题与密室逃脱线索。 位移应用起来快,玩家一旦知道该找什么也容易发现。
  • 防剧透。 ROT13 是论坛上隐藏答案、结局和谜题解法的长期惯例。
  • 课堂演示。 「看起来乱码」与「极易还原」之间的差距,是密码学的第一课。
  • 地理寻宝提示。 藏点描述多年来使用 ROT13,让寻宝者自行决定要不要看提示。
  • CTF 热身。 识别并还原凯撒位移是夺旗赛的标准第一步。

相关工具

常见问题

为什么凯撒密码不算安全的加密?

可用的密钥只有 25 个,任何人几秒钟就能试遍每一种位移;频率分析破解得更快:英文文本中最常见的字母几乎总是 E,因此把密文里出现最多的字母映射到 E 的那个位移,几乎肯定是正确的。它对任何知道方法的人都提供不了保护。

解码模式和编码模式有什么不同?

编码是给每个字母加上位移,解码则是减去它。内部实现上,解码方向使用等效位移 (26 - shift),所以用位移 3 编码后再用位移 3 解码,会还原出原文。

带重音的字母、西里尔字母或表情符号会怎样?

工具完全不碰它们。只有 26 个大写和 26 个小写拉丁字母会被位移;其余一切——é 这类重音、数字、标点、空格、西里尔字母、CJK 和表情符号——都原样通过。像 café 这样的词在位移 3 下会变成 pdsé,而 é 保持不动。

为什么位移滑块只在 1 到 25 之间?

位移 0 或 26 会让文本与原文完全相同,而其他所有整数在模 26 下都会归入 1–25 的范围。界面强制这一区间,是为了让滑块上的每个位置都产生可见的变化。

既然这么弱,ROT13 还有什么用?

ROT13 是位移 13 的凯撒密码,而 13 恰好是 26 的一半,这使它自逆:应用两次 ROT13 就还原原文。这个特性让它成为方便的可逆混淆,用于剧透和谜题答案——目标只是避免无意间读到,而不是保守秘密。

Swap 按钮做什么?

它把当前输出移入输入框,并把模式从编码翻转为解码,或反过来。暴力破解后这个按钮很好用:一旦发现可读的那一行,用 Swap 重新编码就能验证它。

由 HandyTools Hub 团队审校 · 最后更新