书本密码解码器与编码器

粘贴书本文字和数字,工具会判断这些数字指的是单词、字母、行还是页,并把每个数字和它指向的单词并排列出。

书本文字(密钥)

0 页 · 0 行 · 0 个单词

要把文字分成多页,请在页与页之间单独放一行 ---(或 ---PAGE---)。

各字母开头的单词数

编码时很有用:数量为 0 的字母,无法用“首字母”方式写出来。

  • A0
  • B0
  • C0
  • D0
  • E0
  • F0
  • G0
  • H0
  • I0
  • J0
  • K0
  • L0
  • M0
  • N0
  • O0
  • P0
  • Q0
  • R0
  • S0
  • T0
  • U0
  • V0
  • W0
  • X0
  • Y0
  • Z0

按你输入的数字形状,把所有可能的方式都试一遍(从 1 起、从 0 起各一次),再把读起来最像英语的结果排在前面。

高级设置
从几开始计数

自动识别会两种都试。

带连字符的词

各组之间用空格、逗号或换行分隔;组内用 : . - 或 / 连接(如 2:4:1)。单独一个 / 表示单词之间的空格。

自动识别

把符合你数字形状的所有方式(从 1 起、从 0 起)都试一遍,按结果像不像英语排序。点一行就会采用它。

请先粘贴书本文字。

解码结果

解码结果会显示在这里。

书本密码(Book Cipher)用一串数字代替消息里的字母或单词,这些数字指向双方事先都有的一段文字:一本小说、一本词典、一页报纸、一首歌词。数字本身没有意义;有了那段文字,14 可能就是"第 14 个单词",3:7

可能是"第 3 行、第 7 个词、第 2 个字母"。把文字粘贴到上面的书本密码解密工具里,再粘贴数字,工具会找出每个数字指向的单词,给出结果,并在原文里高亮用到的单词。

什么是书本密码?

书本密码的密钥不是口令或数字,而是一段文字。收发双方先约定好用哪段文字,发信人再用"在这段文字里的位置"来表示消息的每一部分。同一个字母可以从文中很多不同的位置取到,所以同一个字母可以写成很多不同的数字。

书本密码
密钥双方都有的一段文字,版本必须相同
密文一组组数字(文中的位置)
常见形式单词序号;行号 + 词号;页号 + 行号 + 词号(奥滕多夫密码)
著名例子比尔密码(Beale ciphers)、阿诺德的密信
主要弱点只要猜中用的是哪本书,所有消息都能读出来

今天遇到的书本密码,大多来自解谜游戏、密室逃脱、地理寻宝(geocaching)和寻宝故事,"书"可能是一首诗、一封信,或者就印在旁边的一页纸。

怎么用这个书本密码解密工具

  1. 粘贴密钥文字。 如果数字指的是"第几行",要保留原文的换行;如果指的是"第几页",在每一页开头前单独放一行 ---。工具会显示识别到的页数、行数和单词数。
  2. 粘贴数字。 空格、逗号、句点、横线、换行都可以作为分隔。同一组里写成 3:7:2、3.7.2、3-7-2 或 3/7/2 都能识别。
  3. 编号方式保持"自动识别",知道方式的话也可以直接选。自动识别会把所有符合你数字分组的方式都试一遍,把最像英文的结果排在最前面。
  4. 对照表格检查。 每个数字都列出它指向的单词,以及取出的字母或单词。点任意一行,原文里对应的单词会高亮,数错位置一眼就能看出来。
  5. 必要时调整设置。 在高级设置里,可以改成从 0 开始数、把空行也算一行、把带连字符的词算成一个词或两个词。

想自己编一条消息,切换到"加密":输入消息,工具会在你的文字里为每个字母或单词挑选位置。

六种常见的书本密码编号方式

书本密码没有统一标准。数字怎么分组,通常就说明了用的是哪种方式:

每组几个数方式每组的含义得到
1单词序号(比尔式)全文第 N 个单词这个词的首字母
1单词序号,取整词全文第 N 个单词整个单词
2行 : 词第 L 行的第 W 个词整个单词
3行 : 词 : 字母第 L 行第 W 个词的第 C 个字母一个字母
3页 : 行 : 词(奥滕多夫式)第 P 页第 L 行的第 W 个词整个单词
4页 : 行 : 词 : 字母上面那个词的第 C 个字母一个字母

用工具示例文字的前两行看看几种方式的区别(点"载入示例文字"可以跟着操作):

Every morning the old library opens its heavy wooden doors to travellers. Maps of forgotten roads hang beside quiet windows, and visitors follow them

  • 单词序号:17 7 10 1 → hang、its、doors、Every → HIDE。
  • 行 : 词 : 字母:1:8:1 1:5:2 → 第 1 行第 8 个词的第 1 个字母是 heavy 的 H;第 1 行第 5 个词的第 2 个字母是 library 的 I → HI。
  • 行 : 词:2:11 1:3 2:7 2:4 → follow the quiet roads。

逐步示例:解单词序号

用上面的文字解 17 7 10 1,要把两行的单词连起来、从 1 开始数:

数字单词字母
17hang(第 2 行:Maps 是第 13 个,of 第 14,forgotten 第 15,roads 第 16,hang 第 17)H
7its(第 1 行)I
10doors(第 1 行)D
1Every(第 1 行)E

单词序号是跨行连续计数的,所以第 2 行从第 13 个词开始。手工解书本密码时,最容易漏掉的就是这一点。

奥滕多夫密码:页、行、词

奥滕多夫密码(Ottendorf cipher)是用"页号、行号、词号"书写的书本密码,有时还有第四个数表示字母。它适合印刷书:112.9.4 就是第 112 页、第 9 行、第 4 个词。这个名字因 2004 年的电影《国家宝藏》(National Treasure)而广为人知。

在这里解奥滕多夫密码,把需要的几页粘贴进来,页与页之间用单独一行 --- 隔开。工具按你粘贴的顺序把它们编为第 1、2、3 页。如果密码里用的是真实页码(比如 112),要么从第 1 页开始粘贴,要么把每组的页号减去起始页码。行号只在本页内计数,每一页都从 1 重新开始。

不知道编号方式,怎么解书本密码

谜题经常只给数字和文字,不告诉规则。保持"自动识别"即可:工具只保留和你的数字分组相符的方式,每种方式都分别按"从 1 数"和"从 0 数"解一遍,再按像不像英文排序,最好的结果自动选中,点其他结果可以切换。

别只看第一名,前几名都要扫一眼。单个数字既可能是"取第 N 个词的首字母",也可能是"取第 N 个整词",两种读法读出来往往都是英文单词。用示例文字时,17 7 10 1 按整词读是 hang its doors Every,按首字母读是 HIDE,到底是哪一种,只有结合谜题本身才能判断。

手工判断也有几个快速线索:

  • 所有数字都不超过 26。 可能根本不是书本密码。1 到 26 的数字通常是 A1Z26 密码,1 代表 A,26 代表 Z。
  • 单个数字比文字的总行数还大,只可能是单词序号。
  • 出现了 0,说明是从 0 开始数的。
  • 每组最后一个数都很小,很少超过 10,说明它多半是字母位置,不是词的位置。
  • 某些数字反复出现,可能是 the、and 这样的整词,或者发信人没有分散选择位置。

不确定手里是哪种密码时,可以先用密码识别器排除其他数字类密码。

书本密码解出来是乱码,常见原因

文字明明对,结果却读不通,几乎都是双方数法不一样。按顺序检查:

  1. 版本。 不同印次的书,换行和分页位置不同。页号和行号方式只能用完全相同的版本。
  2. 屏幕上的换行。 从网页复制的文字往往没有真正的换行,看到的"行"取决于窗口宽度。只有换行固定的文字(诗歌、扫描页、纯文本电子书),行号才有意义。
  3. 从哪里开始数。 有人把书名、章节标题、献词也算进去,有人从正文第一句开始数。按对方的习惯删掉或保留。
  4. 从 0 还是从 1 开始。 用上面的例子,17 7 10 1 按从 0 数,会读成 beside、heavy、to、morning,得到 BHTM;切换设置就变回 HIDE。
  5. 带连字符的词。 well-known 有人算一个词,有人算两个。
  6. 空行。 用行号方式时,空行算不算一行要和对方一致。工具默认跳过空行。
  7. 数字和缩写。 文中日期、缩写很多时,一方把 "1776"、"U.S." 算作单词、另一方没算,后面的序号就全错开了。

前面数错一处,后面所有位置都会错开同样的距离。如果解出的字母总是落在正确单词的旁边,先试试"差一位"的修正。

怎么用书本密码加密

  1. 选一段双方都能拿到同样版本的文字,最好能准确说出或直接发给对方:某个具体版本、存成纯文本的某个网页,或者一张打印的讲义。
  2. 确认文字够长。 用单词序号方式时,你要用的每个字母都得是文中某个词的首字母;X、Z、Q 经常找不到。工具会列出找不到的字母。
  3. 保持高级设置里的"分散选择"开启。 如果每个 E 都变成同一个数字,别人只要找出出现最多的数字就能猜到它是 E。分散选择会把每个字母分到很多不同的数字上。
  4. 保留单词间隔。 工具在单词之间写 /,收信人就能还原空格。
  5. 只发数字。 再另外告诉对方怎么数:用哪段文字、从哪里开始、从 0 还是从 1 数。

取整词的方式密文更短,但消息里的每个词都必须在文字中出现过。词典最适合这种方式,所以历史上有的书本密码就用词典当"书"。

著名的书本密码

插画:烛光下摊开的旧书上有划线,旁边是写着一组组数字的信纸、羽毛笔和火漆印
书本密码的想象图:在双方共有的书里数单词,信里只写数字。

比尔密码(Beale ciphers)。 1885 年在美国弗吉尼亚出版的一本小册子里,印了三段数字密码,据说记录了一批埋藏的财宝。第二段可以用《独立宣言》解开:每个数字代表一个单词,取它的首字母。解出的内容描述了财宝本身,但另外两段——据称写着埋藏地点和财宝主人——至今没人解开,很多研究者认为整件事是个骗局。就连已解开的那段,也必须按编码人那种略不规则的方式给《独立宣言》编号才解得通,这正好印证了上面说的计数问题。

阿诺德与安德烈。 1780 年,本尼迪克特·阿诺德秘密策划把西点要塞交给英军,他和英军军官约翰·安德烈通信时,把单词换成约定版本的布莱克斯通《英格兰法释义》里的页号、行号和词号。

解谜游戏里的书本密码。 今天,书本密码是密室逃脱、寻宝游戏和地理寻宝的常客,因为"书"可以是房间里摆着的任何东西,或者印在寻宝页面上的一段文字。

书本密码安全吗?

文字够长、选得好、位置又分散的话,只看数字很难破解书本密码,因为这些数字没有固定规律。它的弱点在"书"本身:常见的书容易被猜中,文字太短会迫使数字重复,而只要截获一条消息并知道它的原文,就可能推出用的是哪段文字。双方还得在整个通信期间一直使用同一个版本。所以最著名的书本密码,留下名声往往是因为被解开或被读错,而不是因为一直没被破解。

书本密码和相似密码的区别

密码书的用途密文长什么样
书本密码按位置查字母或单词数字
滚动密钥密码用一段长文字当维吉尼亚密钥字母
A1Z26 密码不用书;1–26 代表 A–Z1 到 26 的数字

滚动密钥密码也用书,但用法不同:把一段文字的字母像维吉尼亚密码的密钥那样叠加到消息上,所以密文是字母,不是位置。手里是字母,就不是书本密码;手里是大于 26 的数字,多半就是。

书本密码常见问题

没有那本书,能解开书本密码吗?
通常不能。数字只是文字中的位置,没有那段文字,数字几乎不带任何信息。解谜时,"书"几乎总在附近:页面上的一首诗、房间里的一封信,或者《独立宣言》、某段圣经经文这类常见文献。先试谜题里提到过的文字。
书本密码和奥滕多夫密码有什么区别?
奥滕多夫密码是书本密码的一种,用页号、行号、词号表示每个单词,有时再加一个数表示字母。其他书本密码可能只用一个单词序号,或者只用行号和词号。本工具都能解,不确定时选"自动识别"。
可以用网页或电子书当密钥文字吗?
用单词序号方式可以,它不受换行影响。行号和页号方式要小心:网页和电子书阅读器里的行和页取决于屏幕大小和字体,两个人看到的编号会不一样。改用换行固定的纯文本,或者约定用单词序号。
为什么每个字母都差一点点?
几乎可以肯定是发信人数法不同。先试试从 0 开始数,再检查书名或标题要不要算进去、空行算不算、带连字符的词算一个还是两个。点结果表格里的行,可以看到每个数字落在了哪个词上。
比尔密码用的是哪本书?
三段比尔密码中的第二段,用《独立宣言》解开:取每个编号单词的首字母。另外两段至今没人解开,也没有人找到能解开它们的文字。
密钥文字要多长才够?
用字母方式时,文字要长到你需要的每个字母都出现很多次,这样同一个字母每次都能换一个数字。短消息至少要几段文字,最好是一整章。找不到的字母工具会列出来。

相似工具