Article
密码怎么设才安全:长度、熵与五个最常见的错误
先纠正一个直觉:复杂度不等于安全
大多数人设密码的直觉是「加符号、加数字、大小写混着来」。但如果你算一下熵,会发现这个直觉产生的收益远小于预期。
熵的定义是 log2(可能的组合数),对随机密码就是:
熵(bit) = 长度 × log2(字符集大小)
对比两组:
| 密码 | 长度 | 字符集 | 熵 |
|---|---|---|---|
P@ssw0rd! |
9 | 约 88 | ≈58 bit(但它是字典词变体,实际远低于此) |
k7#mQ2vXr9pLw4Tz |
16 | 约 88 | ≈103 bit |
长度每加 1 位,熵增加约 6.5 bit(88 字符集)。而把字符集从 62 扩到 88,只增加约 0.5 bit/位。所以:加长度永远比加符号划算。
更关键的是,P@ssw0rd! 这类「字典词 + 常见替换规则」在攻击者的规则库里是第一批被穷举的。它的真实破解成本可能只有几十 bit 的水平。
错误一:所有网站用同一个密码
这是危害最大的一条。任何一个站点被拖库,攻击者立刻拿邮箱 + 密码去撞其它几百个站点(撞库),成功率极高——因为大量用户复用密码。
正确做法是账户分级:
| 等级 | 包含 | 密码策略 |
|---|---|---|
| 核心 | 邮箱、网银、云服务主账号、域名/服务器 | 16 位以上随机,独立、不重复,开双因素 |
| 重要 | 社交媒体、公司系统、支付类 App | 14 位以上随机,独立 |
| 一般 | 论坛、试用站、下载站 | 12 位随机,可交给浏览器生成 |
错误二:靠记忆管理所有密码
人脑能长期记住的高熵随机串,实际上只有 1~2 个。要求「每个站不同 + 都够强 + 全记住」是自相矛盾的。
现实只有三条路:密码管理器(推荐)、浏览器密码库(够用)、纸质本(放家里,别拍照存手机)。密码管理器只需要记一个强主密码,其余全部由它生成和填充。
错误三:把「看起来随机」当成随机
常见的伪强密码模式:
- 键盘轨迹:
qwerty123、1qaz2wsx、zxcvbnm - 常见替换:
P@ssw0rd、Adm1n@123 - 个人信息:姓名拼音 + 生日、手机号后六位、
+ 2026 - 统一后缀:
mypass-baidu、mypass-taobao
判断标准很简单:如果它出现在任何词表、规则或你能一句话描述出来的模式里,它就不是随机密码。
错误四:忽略「离线爆破」这个场景
很多人以为网站有登录失败锁定就安全了,那是「在线爆破」。真正的风险是离线爆破:数据库被拖走后,攻击者在本地用 GPU 无限制地试。
这时密码哈希算法很重要:
- 用 MD5/SHA1 存的站点,弱密码瞬间被破
- 用 bcrypt/argon2/scrypt(有工作因子)的站点,攻击成本被放大成千上万倍
作为用户你能做的:别在重要账户上用弱密码,因为你无法控制对方用什么哈希。
错误五:把 2FA 当作可选项
双因素认证(2FA/TOTP)能让「密码泄露」不等于「账户丢失」。优先级:
- 硬件密钥 / Passkey(最强,防钓鱼)
- TOTP 验证器 App(推荐,离线可用)
- 短信验证码(有 SIM 劫持风险,但比没有强太多)
至少给邮箱和主账号开上 TOTP。
可执行的清单
- [ ] 邮箱密码换成 16 位随机串 + 开 TOTP
- [ ] 装一个密码管理器,把重要账号批量迁移进去
- [ ] 每个站的密码必须唯一(核心账户绝对唯一)
- [ ] 关掉「用短信找回密码」这种弱恢复方式,或至少加上二级验证
- [ ] 定期检查 https://haveibeenpwned.com 看邮箱是否在泄露库里
用工具快速生成
打开 随机密码生成器,长度拉到 16,勾选大小写 + 数字 + 符号,勾选「排除易混淆字符」,一次生成 3 条挑一条用。生成结果只在你浏览器里,不上传。
需要统计密码或密钥长度、字节数时,可以用 文本字数统计 看 UTF-8 体积。