免费工具

助记词:生成与校验

BIP-39 助记词是从 2,048 个词的词表里取出的 12 或 24 个词,其中编码着一段随机密钥和一个校验和。最后一个词不是随便选的:它校验前面所有词,所以写错一个字的助记词过不了校验。

生成一组新的助记词,或粘贴你自己的 — 我们来校验它的校验和。

重要 — 动手之前先读这段 在网页上生成的助记词不能用来放真钱。本页不向任何地方发送内容,但它旁边还运行着浏览器扩展、剪贴板同步,身后还可能有别人的眼睛。真实钱包请用硬件钱包,或在没有联网的设备上生成助记词。这个页面是用来学习、跑测试网,以及核对你手上已有的助记词的。

它是怎么运作的

1. 随机性浏览器从系统的随机数源取 128–256 比特 — 就是生成加密密钥用的那个源。普通的随机数生成器在这里不行:它是可预测的。
2. 校验和对这些比特取 SHA-256,把结果的头几位补到末尾:每 32 比特随机性补一位。12 个词就是 4 位,24 个词是八位。
3. 词得到的比特串按 11 位一段切开。每一段是 0 到 2047 之间的数,也就是标准词表里的词序号。词表的大小和词数总是三的倍数,都是这么来的。
4. 校验反过来走:词变成序号,序号变成比特,从头重算 SHA-256 再与末尾比对。对不上,就是哪里写错了,或者有个词放错了位置。

常见问题

guest@404vpn:~$ cat seed-faq.md
[01] $ 最后一个词为什么不能随便选?
> 因为它装着校验和。词编码的是随机比特,末尾再补上这段随机数据的 SHA-256 的头几个比特。改动任何一个词,校验和就对不上 — 钱包就是这样知道你输错了。
[02] $ 12 个词还是 24 个,有区别吗?
> 十二个词是 128 比特随机性,二十四个是 256。两者都无法暴力破解:128 比特已经超出任何硬件的能力。选二十四通常是为了给未来留余量或满足某项规定,但现实中的危险不在助记词的长度,而在它被写在哪里。
[03] $ 助记词会传到你们服务器吗?
> 不会。生成和校验完全在浏览器里完成:词和随机比特都不会离开页面。本页唯一的请求是我们每页都有的匿名访问计数,它只带页面地址。把网断开,工具照样能用 — 对真实钱包,本来就该这么做。
[04] $ 第 25 个词或 passphrase 是什么?
> 加在助记词之上的一个额外口令,会得出一整套完全不同的钱包。它不存在任何地方,也无法找回:忘了它,即使记得全部 24 个词也照样失去访问权。这里不涉及它,那是另一个话题。
[05] $ 工具会显示钱包地址吗?
> 不显示,而且是刻意的。推导地址要多一层计算,还会诱使人在网页上核对真实助记词。这里只有助记词本身和它的校验和。