将字符选择转化为高熵随机密码
密码生成器会从您选定的字母、数字和符号组合中生成一串随机字符,强度足以使暴力破解变得不切实际。 选择长度以及要包含的字符类型,此计算器将立即生成一个密码 — 使用您浏览器的加密安全随机数源,而非普通”生成随机数”工具所依赖的较弱的通用随机性。
与本站的随机数生成器一样,此处的结果有意设计为无法仅凭输入重现 — 分享链接只会恢复您的设置(长度以及您选择的字符类型),而非密码本身。您生成的密码永远不会写入网址、保存到本站的计算历史记录,或发送到任何地方;它只存在于您自己的浏览器中,再次运行生成器理应会给您一个全新的结果。
计算公式
密码的强度以比特熵衡量 — 即攻击者平均需要多少次是/否猜测才能通过暴力破解找到它:
字符集大小是您所选每种字符类型数量的总和 — 大写字母 26 个,小写字母 26 个,数字 10 个,常见符号约 25 个 — 相加得出。更长的密码和更丰富的字符类型组合都会提高熵值,但长度的影响更大:字符集大小翻倍每个字符只增加 1 比特,而长度翻倍则直接使比特数翻倍。
举例说明
一个使用全部四种字符类型(大写字母、小写字母、数字和符号)的 12 个字符密码:
- 字符集大小: 个每位置可能字符。
- 熵:。
- 这落在此计算器的“强”区间(60-79 比特)内 — 对于以当前硬件进行的离线暴力破解尝试而言有相当的安全余量,但尚未达到更长密码所能达到的“非常强”区间。
将同样四种字符类型的长度延长到 16 个字符,熵值将提升至约 103 比特 — 稳稳进入”非常强”区间,因为额外的 4 个字符所带来的可能密码数量增幅,远大于再增加一种字符类型所能带来的增幅。
需要考虑的关键因素
- 每个账户使用独一无二的密码,与密码强度本身同样重要。 即使是非常强的密码,如果在多个网站上重复使用,也意味着一旦其他地方发生数据泄露,所有使用同一密码的账户都会暴露——密码管理器让您能为每个账户生成并保存独一无二的强密码,而无需逐一记忆。
- 长度是提升密码强度的最大单一因素,比字符种类更重要。 由于熵随字符集大小线性增长,但随长度呈指数增长,一个字符类型较少但更长的密码,仍可能比一个使用了所有类型但较短的密码更强——在网站规则允许的情况下,优先选择更长的密码通常是更好的权衡。
- 本计算器的熵估算衡量的是抵御暴力破解的能力,而不是所有现实世界的攻击方式。 网络钓鱼、撞库(重复使用其他泄露事件中泄露的密码)以及直接捕获键盘输入的恶意软件,都能完全绕过密码强度本身——一个强而独特的密码是账户安全中重要的一层保护,但并非唯一的完整防线。
- 只要提供,就启用双因素认证(2FA),能在密码强度之外增加一层有意义的保护。 即使是非常强的密码,仍可能因数据泄露或网络钓鱼而暴露——2FA(来自应用的验证码、硬件密钥等)意味着仅凭泄露的密码通常不足以登录账户。
常见错误
- 为了更容易记住而缩短密码,而不是使用密码管理器。 长度是提升熵值的最大杠杆(见上文的举例说明)——用长度换取易记性,等于放弃了真正的安全性,去换取一种密码管理器本就能在不做这种取舍的情况下解决的便利。
- 误以为网站的最短长度要求是一个好的目标,而不仅仅是下限。 要求”至少 8 个字符”的网站说明的是其自身系统可以接受的最低要求,而不是推荐值——生成远超这个下限的密码不需要任何成本,却能显著提升熵值。
- 在多个账户中重复使用同一个高强度的生成密码。 一个到处使用的强密码,其安全性只取决于存储它的那个安全性最差的网站——无论熵值多高,任何一处发生泄露,都会使所有共享该密码的账户暴露。
- 仅仅为了在手机上更容易输入,就排除符号或数字。 移除整整一种字符类型对字符集(从而对每个字符的熵值)造成的缩减,往往比大多数人预期的更大——如果输入便利性很重要,增加几位长度来弥补这种损失,比舍弃一种字符类型更有效。