密码生成器

生成包含大小写字母、数字和符号的高强度随机密码,长度可自定义。使用浏览器的安全随机数生成器,不会发送或保存任何内容。

如何生成强密码

  1. 在 4 到 64 个字符之间拖动长度滑块,拖动时会不断生成新密码。
  2. 选择字符类型:A–Z、a–z、0–9 和符号。每种勾选的类型都保证至少出现一次,可以满足“至少包含一个大写字母、一个数字和一个符号”这类要求。如果全部取消勾选,小写字母会被自动重新勾选。
  3. 如果将来可能要把密码念给别人听,或照着纸条输入,请勾选避免易混淆字符。
  4. 点击复制,把密码粘贴到注册表单和密码管理器中。↻ 会再生成一个;生成 10 个密码会生成一个带全部复制按钮的列表。

密码下方的彩色条和标签,是根据长度和字符池大小估算出的强度。

各选项包含哪些字符

类型字符数量
A–ZABCDEFGHIJKLMNOPQRSTUVWXYZ26
a–zabcdefghijklmnopqrstuvwxyz26
0–9012345678910
符号!@#$%^&*()-_=+[]{};:,.?/~25

四种类型全选时,字符池共有 87 个字符。“避免易混淆字符”会去掉 I、l、1、O、0、o,剩下 81 个。引号、反斜杠、空格和反引号都不使用;这些字符最容易被表单拒绝,或在命令行和配置文件中需要转义。

密码是怎样生成的

每个字符都由浏览器的密码学安全随机数生成器 crypto.getRandomValues 选出,而不是可预测的 Math.random。可能让某些字符出现得更频繁的随机值会被丢弃并重新抽取,因此字符池中每个字符的概率完全相同。程序先从每种选中的类型里各放入一个字符,再从整个字符池中抽取其余字符,最后打乱顺序,所以必含的字符不会出现在可预测的位置上。

密码在你自己的设备上生成。本页不会发送或保存密码,而且一更改设置就会被新密码替换——所以在做别的事之前,请先把它复制到密码管理器里。

“熵的比特数”是什么意思

熵表示暴力破解需要多少次猜测。从 N 种可能中均匀选出的密码有 log₂ N 比特,每多 1 比特,攻击者的工作量就翻一倍。对于随机字符,熵等于长度 × log₂(字符池大小)。本工具把这个值四舍五入后给出评级:低于 40 比特为弱,40~59 为中等,60~79 为强,80 及以上为非常强。由于强制每种选中的类型都要出现,实际值会比显示的略低一点,但在常见长度下差别可以忽略。

长度仅 a–z(26)字母 + 数字(62)全部类型(87)
838 比特48 比特52 比特
1256 比特71 比特77 比特
1675 比特95 比特103 比特
2094 比特119 比特129 比特

把这些数字具体化:假设窃取了数据库的攻击者每秒能尝试一百亿次。那么穷举所有 40 比特的密码不到两分钟,60 比特约需 3.7 年,80 比特则接近四百万年。还要注意,长度比字符种类更重要:16 个小写字母(75 比特)比使用全部四种类型的 8 个字符(52 比特)更强。

这些数字只适用于随机生成的密码。像 Summer2026! 这样人想出来的密码,实际熵远低于其长度所暗示的水平,因为攻击者会优先尝试单词、名字、日期和常见的字符替换。

实际场景中的设置

  • 保存在密码管理器中的账号:全部类型,20 个字符以上。反正不用手动输入,再长也没有代价。
  • 需要手动输入的密码(如 Wi-Fi 密码、电脑登录密码):16 个字符以上,避免易混淆字符,符号可有可无——不如多加长度。
  • 规则奇怪的网站:如果表单拒绝某些符号,就取消勾选“符号”,再多加四五个字符来保持强度。
  • 数字 PIN 是另一回事:6 位 PIN 不到 20 比特,靠的是输错几次就锁定的机制,而不是熵。需要 PIN 时可以用随机数生成器来选。

比生成器更重要的密码习惯

  • 每个账号使用不同的密码。撞库攻击会拿从某个网站泄露的密码去尝试许多其他网站。
  • 把密码保存在密码管理器中,而不是文档或电子表格里。
  • 为电子邮箱、银行以及其他能重置别的账号的服务开启双重验证,最好使用验证器应用或安全密钥。
  • 有理由时再改密码——比如发生泄露、在公用设备上用过——而不是按固定周期更换。现行的 NIST 指南(SP 800-63B)也更看重长度,而不是强制性的复杂度规则。

常见问题

密码短语比随机密码更好吗?

在强度相同的情况下,它可能更容易记住。从 7,776 个单词的词表中随机选出的六个单词约有 77.5 比特,相当于使用全部类型的 12 位密码。不过单词必须随机抽取,不能自己挑。

密码应该多长?

重要账号的目标至少是 80 比特:使用全部类型时需要 13 个字符以上,只用小写字母时需要 18 个字符以上。

为什么网站还是说我的密码弱?

有些网站并不衡量随机性,只检查“必须包含符号”之类的简单规则。请确认已勾选该网站要求的所有字符类型。