Diceware 口令生成器
用 EFF 大词表(7,776 个单词)创建 diceware 口令,可使用虚拟骰子或你自己掷的实体骰子点数,并显示骰子编码和熵值。
正在加载词典…
什么是 Diceware 口令生成器?
Diceware 把骰子点数变成单词:五个骰子从 EFF 大词表的 7,776 个单词中选出一个。你可以让页面用安全随机数生成器掷虚拟骰子,也可以输入真实骰子的结果,这样完全不涉及计算机的随机性。
如何使用 Diceware 口令生成器
- 在骰子下,选择掷虚拟骰子或输入我自己掷的骰子点数。
- 使用虚拟骰子时,设置单词数(EFF 建议至少 6 个)并点击重新掷骰。
- 使用真实骰子时,每个单词掷五个骰子,并把数字 1–6 输入骰子点数。
- 选择分隔符并复制口令;表格会显示每个单词对应的骰子编码。
示例
Dice rolls: 11111 11112 66666
abacus abdomen zoom (38.8 bits)
为简洁起见只显示三个单词;真正的口令请使用六个或更多。
何时使用 Diceware 口令生成器
diceware 适用于你必须输入或记住的密码:密码管理器主密码、磁盘加密口令、SSH 密钥口令。对于存放在管理器里、从不手动输入的密码,在相同强度下随机字符密码更短。
Diceware 口令生成器 的工作原理
每个单词的索引是把 5 位骰子编码当作 6 进制数读取(11111 = abacus,66666 = zoom),得到 6^5 = 7,776 个等概率单词。虚拟骰子对每个骰子使用 crypto.getRandomValues 和拒绝采样。每个单词增加 log2(7776) ≈ 12.925 比特,因此 6 个单词有 77.5 比特,即使攻击者知道你用的正是这份词表。词表是官方的 EFF 大词表(2016),仅在工具打开时加载。
常见用例
- 创建密码管理器的主密码
- 选择全盘加密或 LUKS/BitLocker 口令
- 保护 PGP 或 SSH 私钥
- 用实体骰子离线生成口令,以获得最大的信任
安全提示
输入到页面中的点数只保留在你的浏览器里。不要以明文保存口令;请把它背下来,或放在密码管理器或密封的纸质备份中。
常见问题
为什么要用实体骰子?
真实骰子消除了对计算机随机数生成器的任何依赖。页面只执行查表,你可以对照公布的 EFF 词表进行验证。
我需要多少个单词?
EFF 建议至少 6 个单词(77.5 比特)。对于主密码,七个单词(90 比特)是稳妥的选择。
我可以重新排序或挑选自己喜欢的单词吗?
不可以。在多个结果中挑选会降低熵。请严格按掷出的结果使用这些单词。
EFF 词表和原版 diceware 词表一样吗?
不一样。EFF 大词表(2016)取代了 Arnold Reinhold 的原版词表,使用更长、更好记且更不冒犯的单词,但沿用同样的 5 骰子方案。