在线密码生成器用 Math.random 危险吗?看熵与 Web Crypto
解释密码生成器应使用 crypto.getRandomValues、如何估算熵,以及 TwoThink 密码生成器的用法与排除易混淆字符选项。
很多「在线密码生成器」页面花哨,底层却是 Math.random()。对普通网站登录也许勉强够用,对重要账号我不建议赌。
该用什么随机源
浏览器提供 Web Crypto 的 crypto.getRandomValues,由系统熵池喂养,适合生成密钥材料。TwoThink 密码生成器 只用它,并做均匀采样,避免「取模偏差」。
强度条在说什么
强度按近似熵:长度 × log2(字符集大小)。
- 6 位纯数字:熵很低 → 弱
- 16 位且含大小写、数字、符号:通常进入极强区间
还可打开「排除易混淆字符」,去掉 0 O I l 1 |,方便手打,字符集略小,强度会相应变化。
会不会被网站记下来?
不会。生成与复制都在你的浏览器里完成,服务端收不到密码内容。请仍避免在公共场合长时间亮屏展示。