密码短语生成器

密码短语
下一步

由几个随机单词组成的密码短语比一串杂乱的短符号更容易记住,通常也更难被猜到。本生成器从一个内置的常用、易拼写英文单词列表中取词,用一个符合加密安全标准的随机数生成器来挑选每个单词。你可以选择要用多少个单词(2 到 20 个)、单词之间的分隔符、是否将每个单词首字母大写,以及是否在末尾附加一个随机的两位数。这个内置列表比较精简,是为便于记忆而调校的;如果你需要强度最高的主密码,请按下文所述改用完整的 Diceware 列表。

你的密码短语是如何生成的

  1. 1

    选择单词数量

    在 2 到 20 之间。单词越多,密码短语越长、越强;5 到 7 个是日常使用的良好平衡点。

  2. 2

    选择分隔符

    短横线、空格、下划线、点,或任意字符(最多三个)。分隔符有助于阅读,但几乎不增加强度。

  3. 3

    是否大写

    将每个单词的首字母大写以便阅读。这不会实质性地改变强度。

  4. 4

    附加数字(可选)

    在末尾加上一个随机的两位数。

  5. 5

    生成并重新生成

    单词由一个符合加密安全标准的随机数生成器挑选。如果某个短语难以在脑中形成画面,就再生成一次,直到有一个让你记得住。

密码短语的强度是怎么算的

强度以熵的比特数来衡量:也就是可能生成出多少个等概率的短语,取以 2 为底的对数。从一个含 N 个单词的列表中随机取出的每个单词会增加 log2(N) 比特,再乘以单词数量就得到总数。列表越大、单词越多,熵就越高。

本生成器使用的单词列表

本工具取自一个精简的内置常用英文单词列表(大约 90 个),所以每个单词大约增加 6.5 比特。因此一个 5 个单词的短语约为 33 比特,可选的两位数再增加约 6 比特。这对于低风险、需要好记的登录足够用了,但远低于你对一个主密码的要求。对于高价值的机密,请使用更多单词、把短语与密码管理器配合使用,并优先选择完整的 Diceware 列表。

参考单词列表及其熵值

单词列表 单词数 每个单词的比特数
本生成器的内置列表 ~90 ~6.5
EFF short list 1,296 10.3
EFF large list 7,776 12.9
Diceware original 7,776 12.9
BIP-39(加密种子词) 2,048 11.0

使用完整的 7,776 词 Diceware 列表(每个单词 12.9 比特):

  • 4 个单词 ≈ 51.6 比特(一般)
  • 6 个单词 ≈ 77.4 比特(强)
  • 8 个单词 ≈ 103.2 比特(主密码级别)

熵值与破解难度的对照

  • 50 比特:能抵御大多数在线攻击;有充分动机的对手在离线环境下数月内即可破解。
  • 70 比特:以现有硬件,可在数年内抵御离线破解。
  • 90 比特:在可预见的未来仍超出当前批量破解能力的范围。
  • 120 比特:超过 AES-128 密钥的安全强度,后者由 128 比特的随机数生成。

为什么随机单词胜过一个“复杂“的短密码

一个像 Xp!9k@Lm3* 这样的 10 字符混合密码,如果真正随机,大约有 66 比特的熵。而一个像 correct-horse-battery-staple-pine-kelp 这样、取自完整 Diceware 列表的 6 词短语则有 77 比特。这个短语更强、更好输入、也更好记。著名的 xkcd 漫画解释了其中的直觉:人类非常不擅长手动产生熵,于是我们造出的是可预测的“复杂“密码,而这些密码破解者已经见过数百万次。

小贴士

  • 用画面记住前两三个单词。 在脑中构建一个把这些单词联系起来的古怪画面,其余的就会跟着记住。
  • 不要在多个账户间重复使用。 一个密码短语的安全程度,取决于保存它的那个最薄弱的网站。请使用密码管理器,并为每次登录使用不同的短语。
  • 末尾附加的数字帮助很有限。 加两位数字大约只提高 6 比特的熵;它无法替代增加更多单词。
  • 主密码短语要区别对待。 对于密码管理器的主密码和磁盘加密,请从完整的 Diceware 列表中选 7 个或更多单词,而不是这个精简的内置列表。

哪些做法没有帮助

  • 把随机字母大写。 增加的熵可以忽略不计,还会损害记忆。
  • 加一个符号。 只有当它的位置也是随机的,才增加几个比特。几乎不值得。
  • 用数字替换字母(“p@ssw0rd”)。破解工具从 2000 年代起就能处理这些替换。没有真正的提升。

常见问题

越多越强。用本工具这个精简的内置列表时,对任何重要的用途都请使用 7 个或更多单词,并配合密码管理器使用。如果你需要一个用于密码管理器或全盘加密的主密码短语,请从完整的 Diceware 列表(7,776 个单词)生成,而不是短小的内置列表。

不是。它用的是一个小型的内置常用、易拼写英文单词列表(约 90 个),为便于记忆而挑选,所以每个单词贡献约 6.5 比特,而不是完整的 7,776 词 Diceware 列表的 12.9 比特。若要追求最高强度,请把它当作一个好记的起点,对关键机密则改用完整的 Diceware 列表。

分隔符不会带来有意义的熵。选一个你能顺手打出来的(短横线或空格)并一直用它。给每个单词换不同的分隔符只增加极少的熵,却带来大量的记忆负担,因此并不值得。

那就改用密码管理器为该网站生成一个 16 到 20 个字符的随机密码。把密码限制在 16 个字符以内的网站,通常在其他安全方面也做得不对,所以要格外小心不要重复使用密码。

相关工具

此工具还提供其他语言版本