密码生成器
用浏览器自带的密码学安全随机数生成器创建高强度随机密码——调整长度和字符类型,复制,完成。
jMdyPycKWv5dUXLP
强 · 约 95 位随机强度
随机性到底是怎么实现的
本工具使用浏览器的 Web Crypto API(crypto.getRandomValues)生成随机数,而不是 Math.random()——前者是适合生成密钥这类机密信息的密码学安全随机源,后者不是,用它来生成密码是一个常被忽视的真实弱点。选取每个字符时还用了拒绝采样(rejection sampling),避免“随机数对字符集长度取模”这种朴素做法带来的细微偏差。
你打开的每一种字符类型都会合并进同一个字符池,密码里的每个字符都是从这个池子里独立、均匀地抽取的——打开的类型越多,字符池越大,密码下方显示的“位”(熵值,也就是真正衡量破解难度的指标)也越高。长度比字符种类更重要:一个20位纯小写字母的密码,安全性通常比一个10位但用了所有字符类型的密码更高。
常见问题
这真的安全吗,还是只是做做样子?
是真的安全:密码由 Web Crypto API 的密码学安全随机数生成器生成,和生成加密密钥用的是同一级别的随机源,不是简单的伪随机函数,整个过程没有任何“看起来安全”的表演成分。
密码会离开我的浏览器吗?
不会。生成、强度计算、复制按钮全部在客户端完成——不会发送到服务器,不会被记录或存储在任何地方。刷新页面后就彻底清空了。
那个“熵值”数字到底是什么意思?
它表示密码里包含多少位随机性——每多1位,攻击者平均需要尝试的次数就翻一倍。超过约80位之后,凭现在的技术,暴力破解在实际操作上就已经不可行了。