onlinetools.dev

密码生成器

按字符集生成随机密码,附真实的熵值评估

本地运行
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 会造成真实的工单。纯粹复制粘贴的密码可以保留它们;无论哪种,排除带来的熵损失都很小。
相关工具