ToolBench

安全

强随机密码生成器

密码由 crypto.getRandomValues 生成,而不是 Math.random;强度显示的是真实熵值(比特),能看出到底有多安全,而不是一个凭感觉的进度条。

长度 20

怎么用

  1. 拖动滑块设置长度,日常 16 位是稳妥的默认值。
  2. 勾选需要的字符类型。类型越少字符池越小,同样强度就需要更长的密码。
  3. 点「生成」,满意后点「复制」。
  4. 直接粘贴进密码管理器,不要写在纸上或记事本里。

熵,以及为什么大多数强度条在骗人

熵以比特计量:可能密码总数的以 2 为底的对数。从 62 个字符里取 20 位,熵是 20 × log₂62 ≈ 119 比特。大多数强度条并不算这个,它们只是看有没有数字和符号,然后给结果封顶,于是 12 位和 40 位都显示「强」——而后者被破解的难度是前者的万亿的万亿倍。

长度胜过复杂度

NIST 在 2017 年撤回了自己的组合规则:不强制符号、不强制定期更换、不强制过期。理由是算术:给 12 位小写密码加一位,搜索空间乘以 26;强制加一个大写字母,只乘以 2。长度是唯一能规模化的杠杆,所以四个单词组成的短语,在熵和可记性上都胜过八个字符的乱码。

生成之后该做什么

一个自己记不住的强密码,只有在「有东西替你记」的前提下才有用。把它放进密码管理器,然后给管理器设一个你记得住的长口令——四五个随机词在任何维度上都胜过一串短符号,包括好记程度。

接着去修真正导致泄露的那一环:复用。一站一密,意味着任何一家出事都只波及那一家。凡是提供两步验证的地方都打开,优先用验证器应用或硬件密钥,而不是短信——短信可以被补卡攻破。

常见问题

这个生成器真的随机吗?

是。它用的是 Web Crypto,也就是浏览器给 TLS 密钥用的同一套随机源,而不是给动画用的 Math.random。

「比特熵值」是什么意思?

它表示可能密码数量的以 2 为底的对数。每多 1 比特,攻击者的工作量翻一倍。在线账号 70 比特以上算强。

为什么少了几个字母?

大写 I、大写 O 和小写 l 被排除,因为它们在屏幕上或口头传达时极易混淆。

这里生成的密码是真随机吗?

取自浏览器的密码学随机源,不是 Math.random——后者可预测,任何与安全相关的用途都不该用它。

一定要加符号吗?

只有对方站点强制要求时才加。真正抵抗猜测的是长度;符号主要是在满足那些「在人们搞清这件事之前」写下的密码规则。