功能简介
密码生成器按你选择的字符类型生成高强度随机密码:小写字母、大写字母、数字和符号。每个密码保证至少包含一个你所选每类字符,能满足大多数网站的密码规则。
随机数来自浏览器的密码学安全随机数生成器,而不是 Math.random。字符用拒绝采样法挑选,字符池里每个字符被选中的概率完全相同,不会偏向字母表的前半部分。
使用方法
- 选择「长度」。标签上会显示当前设置下单个密码的熵。
- 选择一次生成的「数量」。
- 打开或关闭各类字符。如果密码需要朗读或手动输入,打开「排除易混字符」。
- 点「生成」得到一批新密码,然后复制某一行或下载整个列表。
什么样的密码才算强
长度比复杂度更重要。一个使用全部 94 个可打印 ASCII 字符的 16 位密码约有 104 位熵,即使每秒猜一万亿次,穷举所有组合所需的时间也远超宇宙年龄。带符号的短密码反而不如只有字母的长密码安全。
同样重要的是:每个网站使用不同的密码,并用密码管理器保存。大多数账号被盗都是因为别的网站泄露后密码被重复使用,而不是被猜出来的。
示例
使用默认设置(16 位,全部字符类型)会得到类似这样的密码:
q7#Lm2^vR!xP9tGd
Wz$4kN8@hE&c3uJy
每次生成的结果都不同。这里的例子仅作演示,请不要直接使用。
常见问题
› 密码是在服务器上生成的吗?
不是。密码在你的浏览器里用 Web Crypto API(crypto.getRandomValues)生成,这是密码学安全的随机数生成器。不会通过网络发送,也不会被保存。
› 密码应该多长?
如果用密码管理器保存,16 位以上、包含全部四类字符就足够了(熵超过 100 位)。主密码或磁盘加密密钥建议 20 位以上。
› 「位熵」是什么意思?
它衡量攻击者需要猜多少次:每多 1 位,破解工作量翻一倍。计算方法是长度 × log2(可选字符数)。80 位足以抵御在线攻击和大多数离线攻击;100 位以上已经超出任何实际的暴力破解能力。
› 为什么要排除易混字符?
0 和 O、1 和 l 和 I 这些字符在朗读密码或照着纸抄写时很难分辨。排除它们会损失一点熵,把密码稍微加长一点就能补回来。