piapia123
zh

古典密码解码

编码

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

用这类工具的真实场景多半是拿到一段不知道被怎么处理过的文本(谜题、CTF、朋友发来的乱码),而不是「我知道它是凯撒,帮我解」。所以默认把常见变换一次全列出来,一眼扫过去看哪一行读得通 —— 想只做一种时再在上面选具体方法。 只动该动的字符。 凯撒、Atbash、维吉尼亚都只动字母,标点、数字、空格原样保留:把它们一起移位会毁掉文本结构,而且解不回来。唯一的例外是 ROT47 —— 它的定义就是在可打印 ASCII 上整体转 47 位,所以连标点都会变,这一点在结果里写明了。

功能

  • 默认列出全部:ROT13、Atbash、ROT47、ROT18、ROT5 一次给全,一眼看出哪一行读得通
  • 凯撒可选任意位移,也能暴破(25 种位移全列出来)
  • 维吉尼亚支持自定义密钥;密钥下标只跟着密钥走,标点不消耗密钥字母
  • 波利比奥斯方阵编码与解码
  • ⚠️ ROT47 是唯一会改标点与数字的一种,结果里写明了原因
  • ⚠️ 方阵把 I 与 J 合并,所以解码时 J 会变成 I —— 这是密码本身的性质,结果里也写明了
  • 不做培根密码:它有两套字母表(24 字母与 26 字母),编出来的码完全不同,而文本本身看不出用的是哪一套

使用方法

  1. 把要处理的文本粘进去
  2. 默认「全部列出」会给出所有常见变换;想只做一种就在「方法」里选
  3. 要解凯撒又不知道位移,勾上「凯撒暴破」逐行看

常见问题

为什么不把所有字符都一起移位?
因为古典密码的定义就只管字母。凯撒、Atbash、维吉尼亚都是对字母表做置换,标点、数字、空格不参与 —— 把它们也一起移位会毁掉文本的可读结构,而且再解一次也回不到原文。唯一的例外是 ROT47,它按定义就是在可打印 ASCII 上整体转 47 位。
ROT13 为什么「加密」和「解密」是同一个操作?
因为英文字母表有 26 个,转 13 位正好是一半 —— 转两次就回到原处。Atbash 和 ROT47 同理(后者是 94 个可打印字符转 47 位,也是一半)。所以这几个方法不需要「方向」这个选项,工具也不会假装它们有。
维吉尼亚的密钥里有数字和符号会怎样?
它们会被忽略,只取字母。这是常见做法 —— 密钥是用来决定位移量的,而位移量只能是 0–25,数字与符号没有对应的位移。另外密钥的推进只跟着密钥字母走:密文里的标点与空格不消耗密钥字母,否则同一段明文会因为多了几个空格而整体错位。
为什么没有培根密码?
因为它有两套互不兼容的字母表:原始版本是 24 个字母(I/J 与 U/V 各占一格),后来的版本改成 26 个。同一串 A/B 在两套下解出来的是不同的文字,而文本本身完全看不出用的是哪一套。给一个「解出来了」的结果,用户没有办法核对 —— 所以不做,而不是给一个可能错一半的答案。

相关工具