密码生成器
选择所需长度,切换大写/小写、数字及符号选项后,该生成器将利用浏览器内置的密码学随机数生成器(与SSL密钥生成及加密货币钱包所采用的熵源完全一致)来生成密码。无需预设伪随机数,也无需服务器端往返通信。由全部四种字符类型组成的16位密码可提供约95比特熵值,足以抵御当前硬件设备的离线破解攻击。
密码构建的强度如何
-
1
选择长度
默认值为16:对于重要账户而言,低于12的数值均属于较低水平。
-
2
选择字符类别
大写字母、小写字母、数字、符号。类别的越多,每个字符的熵值就越高。
-
3
可选:排除歧义字符
若密码需从屏幕传输至终端,则需勾选0/O和1/l/I选项。
-
4
生成
crypto getRandomValues() 会从允许的字符集中均匀随机选取每个字符。
-
5
复制并存储
立即粘贴到密码管理器中。请勿重复使用。
按长度和字符集划分的熵值
| 长度 | 仅下划线 | 下划线加数字 | 下划线加上划线加数字 | 四种类型均适用 |
|---|---|---|---|---|
| 8 | 38位 | 41位 | 48位 | 52位 |
| 12 | 57位 | 62位 | 71位 | 79位 |
| 16 | 75位 | 83位 | 95位 | 105位 |
| 20 | 94位 | 103位 | 119位 | 131位 |
| 24 | 113位 | 124位 | 143位 | 158位 |
熵在实际中的含义
- 40位——如今仅需一台GPU即可在数日内破解,非常适合临时性账户使用。
- 60位:能抵御在线攻击,但易受专用离线破解攻击的影响。
- 80位——针对当前硬件环境下的离线破解具有强抗性。
- 100位——在量子计算技术成熟之前,实际上无法被破解。
- 128位——与AES-128的密钥强度相匹配。
对于大多数在线账户而言,从完整字符集(105位)中选取的16个字符已完全足够;而银行账户、密码管理器和加密钱包则需要20个以上的字符。
为何角色类别如此重要
每个字符类别都对应不同的数据存储需求:使用26个小写字母时,每个字符占用log₂(26)=4.7比特;加入大写字母后字符数量增至52个,每个字符占用5.7比特;添加数字字符使字符总数达到62个,每个字符占用5.95比特;引入符号字符则扩展至94个字符,每个字符占用6.55比特。当字符数量超过16个时,这种差异会累积至约30比特——这正是“可破解”与“不值得尝试”之间的关键区别。
何时排除歧义字符
若密码需从屏幕直接输入至设备且无复制粘贴路径(如控制台安装程序、某些硬件钱包或老年用户大声朗读密码等情况),则排除0、O、1、l和I后,可有效避免转录错误。其熵成本极低(仅需80多位密码中的2-3位)。
密码管理器工作流程
- 安装密码管理工具(Bitwarden、1Password、KeePass)。
- 设置一个强效主密码短语(由6至8个随机单词组成——请参阅密码短语生成器)。
- 对每个站点均使用管理器生成器,并采用默认的高强度设置。
- 绝不要在不同网站重复使用密码,即使是临时使用的密码也不例外。
- 在所有支持双因素认证的设备上启用该功能。
手动输入的密码应尽量避免使用——仅限于管理员主账户密码、全盘加密密钥以及可能的工作电脑登录密码。
无助于解决问题的因素
- **每90天更换一次。**强制轮换会形成可预测的模式(例如:2024年夏季 → 2024年秋季)。NIST SP 800-63B标准明确不推荐此做法。
- 在钱包中用纸记录密码。 这比重复使用弱密码更安全,但不如密码管理器可靠。
- 采用真实答案的安全问题。 对大多数人而言,“第一所学校”只需一次谷歌搜索即可找到。生成随机的虚假答案并存储在您的系统中。
常见问题
包含来自所有四种字符类型(小写字母、大写字母、数字、符号)的16个字符,几乎适用于任何账户;对于密码管理器主账户、加密钱包及全盘加密场景,字符数需达到20个以上;无论遵循何种复杂性规则,少于12个字符均属于弱安全性标准。
密码是通过 Web Crypto API 在您的浏览器中生成的,绝不会发送至任何地方。如需验证,请打开 DevTools 网络面板。请立即将密码复制到密码管理器中,切勿截图或发送电子邮件。
数据泄露事件:当某个网站泄露密码后,攻击者会立即使用相同的邮箱地址和密码组合尝试入侵数百个其他网站(即“凭证填充”攻击)。每个网站使用的独立密码仅会对该账户造成影响。
为该网站生成一个随机的16位密码。密码长度不超过16个字符通常表明网站采用的密码存储方式扩展性较差,这属于警示信号——尤其应启用双重认证功能。