培根密码完全指南:把消息藏进字体里的 Bacon 古典隐写术
培根密码用五位 A、B 字母组表示每个字母,弗朗西斯·培根 1605 年发明,本质是穿着字母外衣的二进制。本文讲清编码规则、24 与 26 字母两套表、字体隐写玩法,以及它在 CTF 解谜里的常见出场方式。
培根密码完全指南:把消息藏进字体里的 Bacon 古典隐写术
第一次在 CTF 里碰到培根密码,我盯着满屏的 A 和 B 看了十分钟,以为是哪段二进制坏了。后来才反应过来,那不是噪音,是弗朗西斯·培根 1605 年就设计好的一套替换表。把它按五个一组切开,字母就一个一个跳了出来。这篇文章把这套老密码讲清楚:它怎么编码、为什么和隐写术绑在一起、解题时容易踩哪些坑。
每个字母用五位 A、B 表示
培根密码的核心规则只有一句:每个字母换成一组五个符号,而符号只有两种,经典写法是 A 和 B。从 A 开始像二进制一样往上数:
- A = aaaaa
- B = aaaab
- C = aaaba
- D = aaabb
- E = aabaa
五个位置、每位两种取值,一共能排出 32 种图案,装下 26 个字母还有富余。因为每组恰好五位长,只要把整段消息按五个切开,逐组查表就能还原。这也是它和现代加密最不一样的地方:它没有密钥,规则是公开的,真正藏起来的不是内容,而是消息存在这件事本身。
想动手试试,直接打开 培根密码编码解码器,左边输文字、右边读 A、B 组,粘回来也能反向还原。
一个真实的编码例子
拿单词 HELLO 走一遍。逐字母查表:
- H = aabbb
- E = aabaa
- L = ababb
- L = ababb
- O = abbab
连起来就是 aabbb aabaa ababb ababb abbab。反过来解码时,把这五段按五个一组拆开,逐组查回字母,就拿回 HELLO。再短一点的例子,单词 HE 编码成 aabbb aabaa,两组共十个字符,正好被五整除,这是判断切分有没有错位的最快手段。
24 字母表和 26 字母表的坑
培根 1605 年的原表只有 24 个编码。原因在那个年代的英文字母表:I 和 J 不分家、U 和 V 也不分家,所以它们各自共用一个图案。用这套表解码时,J 会解成 I、W 解成两个 V。
后来的 26 字母版给每个字母都分了独立编码,J、U、V、W 都能精确往返。做现代文本选 26 没问题,但碰历史题或者老 CTF 题,十有八九要切回 24。我自己的经验是:如果一段消息解出来"像对又不全对",前半截能读、从某个字母起开始乱,先别怀疑题目坏了,八成是字母表选错了,切一下往往乱码就变成人话。
它为什么算隐写术,不算加密
培根设计这套东西的初衷,不是把消息打成乱码,而是把它塞进一段看着平平无奇的掩护文字里。关键在于:那两个符号可以是任意一种二元区分。
- 正体对斜体
- 大写对小写
- 两种几乎看不出差别的字体
读者眼里是一段普通段落,而秘密就编在排版的细微差异里。把每个字母按字体或大小写还原成 A、B 串,再按五个一组解码,藏着的词就出来了。这正是它常年出现在解谜活动、密室逃脱和 ARG 里的原因:谜面摆在明处,线索藏在样式里。要做这类道具,可以先在工具里把秘密编成 A、B 组,再把 A 映射成一种字体、B 映射成另一种印到道具上。
A、B 可以换成 0、1 或任意两个符号
既然只是二元区分,A 和 B 完全可以换。把符号设成 0 和 1,五位二进制结构立刻一目了然:A 是 00000、B 是 00001、C 是 00010,跟二进制课上数的一模一样。也可以用一个点和一个横线,或者两个 emoji,只要两者不同即可。规则是:第一个符号永远当作 A 位,第二个当作 B 位,编码解码都按这个约定走。这一点在课堂上特别好用,把"五位"和"32 个可能字母"两件事一下子接上了。
解题时最容易翻车的三个地方
第一,字母表选错。24 字母表编的消息用 26 字母表解,第一个 I 或 U 之后全盘错位。 第二,忘了每组恰好五个符号。多一个或少一个字符,后面整段跟着乱。先数总字符数,应当能被五整除。 第三,搞混 A 和 B 谁在前。两者颠倒,aaaaa 就成了 bbbbb,A 直接翻成字母表最后一个字母。如果解出来像真文本的镜像,多半是两个符号反了。
和其他古典密码一起用
培根密码常常不是单独出现,而是某个多层谜题里的一环。手头备齐几把古典密码工具会顺很多:位移类的 凯撒密码编码器 用来试不同偏移,ROT13 编码器 处理那个固定偏移 13 的特例,维吉尼亚密码 应付带密钥的多表替换,摩斯电码翻译器 则在另一种"点划二元"的题里搭把手。培根密码负责的那一层,往往就是把一串看似无意义的 A、B 还原成可读的关键词,再交给下一层继续解。
把这套规则记熟,下次再看到满屏 A 和 B,你就不会再当成坏掉的二进制了。
Made by Toolora · Updated 2026-06-13