使用步骤
- 设置长度:保存在密码管理器里的账号,16 位以上是不错的默认值。
- 选择包含的字符类型,以及是否排除 I、l、1、O、0 等容易混淆的字符。
- 如果网站不接受某些字符(比如引号、空格),填到「排除指定字符」里。
- 复制密码,或一次生成多个并全部复制。
参数说明
- 长度
- 每增加一位,可能的密码数量就成倍增长。长度比符号更重要:16 位纯小写字母比 10 位混合字符更强。
- 排除易混字符
- 去掉 I、l、1、|、O、0、o 和引号,便于口头告知或从纸上抄写,会略微降低熵值。
- 每类字符至少出现一次
- 保证每种选中的字符类型至少出现一个,满足很多注册页面「必须包含大小写字母和数字」的要求。
- 熵
- 生成结果中的随机性比特数,等于长度 × log₂(字符集大小)。60 比特一般,80 以上强,100 以上非常强。
长度与字符类型的对比
仅由对应字符组成的密码的熵:
| 字符集 | 8 位 | 12 位 | 16 位 | 20 位 |
|---|---|---|---|---|
| 纯数字(10) | 27 比特 | 40 比特 | 53 比特 | 66 比特 |
| 小写字母(26) | 38 比特 | 56 比特 | 75 比特 | 94 比特 |
| 字母 + 数字(62) | 48 比特 | 71 比特 | 95 比特 | 119 比特 |
| 四类全选(89) | 52 比特 | 78 比特 | 104 比特 | 130 比特 |
多加 4 位长度,比给短密码加符号更有效。常见的 6 位纯数字支付密码只有约 20 比特,只能依靠错误次数限制来保护。
常见问题
生成的密码真的随机吗?
是的。密码来自浏览器的密码学安全随机数生成器 crypto.getRandomValues,并用拒绝采样选取字符,保证每个字符出现的概率完全相同。
你们能看到或保存我的密码吗?
不能。密码由你设备上的 JavaScript 生成,不会传输到任何地方,也不会被保存。
密码多长才够?
保存在密码管理器里的账号,16–20 位随机字符已经足够。需要记在脑子里的主密码,建议用由多个随机单词组成的长口令。
破解时间是怎么算的?
按每秒 100 亿次猜测进行暴力破解所需的平均时间,大致相当于用高性能显卡离线破解快速哈希。在线攻击网站时由于有频率限制会慢得多,但应按最坏情况考虑。
一个强密码能在多个网站通用吗?
不要这样做。一旦某个网站泄露,攻击者会拿它去所有网站尝试(撞库)。每个账号用不同的密码,交给密码管理器记住。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。