密码生成器
按字符集生成随机密码,附真实的熵值评估
本地运行
loading…
关于此工具
按选定长度和字符集生成随机密码,需要时可批量,并附带诚实的熵计算——真实的随机位数,而不是装饰性的颜色条。随机性来自 crypto.getRandomValues 配合拒绝采样,每个字符都是均匀抽取,没有取模偏差。
每个启用的字符集都保证至少出现一个代表(许多网站强制的策略),其余位置均匀填充,最后整体洗牌——所以被保证的字符不会可预测地聚在开头。
易混淆字符过滤会去掉形近字符(0/O、1/l/I),适合任何可能被人朗读或从纸上誊抄的密码。生成在本地进行,密码在你放到别处之前只存在于你的机器上。
常见问题
- 熵的位数是什么意思?
- 熵 = 长度 × log2(字符池大小):攻击者必须搜索的等可能性数量。64 位能挡住随手攻击;80+ 位对快速哈希的离线破解算强;100+ 位几乎不可猜。一个字母+数字+符号的 16 字符密码约 104 位。
- 长的纯小写密码比短的复杂密码更好吗?
- 往往是——长度对熵是乘法,而增加字符集只是加宽对数的底。20 个小写字母(约 94 位)胜过 10 个全混合字符(约 65 位)。复杂度规则主要是为了对付词表攻击,而随机生成本身已经解决了这一点。
- 在浏览器里生成密码安全吗?
- 随机性(crypto.getRandomValues)与原生密码管理器用的是同一个 CSPRNG,且本页不会用你的数据发起网络请求。现实的风险在生成之后:剪贴板历史、屏幕共享、以及你把它存在哪里。
- 为什么要排除易混淆字符?
- 对会被人读出来的密码——打印的恢复码、电话里念的、从另一块屏幕上敲的——0/O 和 1/l/I 会造成真实的工单。纯粹复制粘贴的密码可以保留它们;无论哪种,排除带来的熵损失都很小。