密码短语怎么设置:几个词才够、中文短语为什么常更弱(附破解时间表)

密码短语怎么设置:几个词才够、中文短语为什么常更弱(附破解时间表)

「密码短语更安全」这句话只对了一半。四个随机单词拼起来的口令短语,在拿到哈希的离线爆破场景里,平均 30 分钟就能被跑完——它比 P@ssw0rd! 强,但远没到「可以用在主密码上」的程度。真正决定强度的不是「像不像一句话」,而是词从哪里来、一共几个、以及攻击者手上的字典有多大。

这篇把三件事讲清楚:几个词才算够(附破解时间对照表)、中文短语为什么常常比英文更弱、以及一套 10 分钟能做完的造词与验收流程。

先算账:词数决定一切

用 EFF 的 7776 词长词表随机取词,每个词贡献 log₂(7776) ≈ 12.9 bit 熵。攻击者拿到数据库哈希后可以本地离线爆破,现代多卡机器对弱哈希(MD5/SHA1,或 fast-hash 的 bcrypt 低轮次)能到每秒 10¹² 次量级;换成 Argon2id 这类慢哈希会低几个数量级,但你不能假设每个网站都用对了参数。

词数熵组合数离线爆破(10¹² 次/秒)离线爆破(10¹⁰ 次/秒)
3 词38.8 bit4.7 × 10¹¹不到 1 秒约 24 秒
4 词51.7 bit3.7 × 10¹⁵约 30 分钟约 2 天
5 词64.6 bit2.8 × 10¹⁹约 5 个月约 45 年
6 词77.5 bit2.2 × 10²³约 350 年约 35 万年
7 词90.5 bit1.7 × 10²⁷约 2700 万年约 27 亿年

结论很直接:5 个词是及格线,6 个词是舒适区,4 个词只适合「在线登录 + 有错误次数限制」的场景。在线登录试 10 次就锁号,4 词短语完全够用;一旦哈希泄露、攻击者可以离线慢慢跑,4 词就只有半小时的抵抗力。

还要注意词表规模会直接稀释熵。BIP39 只有 2048 个词,每词 11 bit,6 个词才 66 bit;而很多人「自己想的词」实际词池只有几百个常用词,4 个词可能连 30 bit 都不到。

密码短语怎么设置:把一张便签分成四个格子,每格写一个互不相关的具体名词
互不相关的具体名词,比一句通顺的话更难被规则化字典命中。

「长而复杂」不等于「难猜」

很多人把 Wint3r!Sun#2026 当成强密码:有大小写、有符号、有数字、长度 14。但这串字符的生成过程是人类规则——季节 + 符号 + 年份,市面上的规则字典第一时间就会覆盖。它的真实熵大概只有 30~40 bit,比 5 个随机词差一个数量级。

类型示例结构实际熵记忆成本
8 位混合字符大小写 + 数字 + 符号约 30 bit(人类挑选后更低)高,常写便签
替换法密码P@ssw0rd、L3tm3in低于 20 bit,字典秒破低
4 词短语random word × 4约 51 bit低,可复述
5~6 词短语random word × 5~665~78 bit低到中
密码管理器生成16 位全随机约 100 bit零(不用记)

所以正确的分工是:需要人脑记住的那一两个密码(主密码、设备解锁)用短语;其余全部交给密码管理器生成随机串。这也是密码管理器怎么选里反复强调的一条:人只需要记住一把钥匙。

中文短语的三个坑

中文用户直接照搬英文教程,最容易在这三处翻车。

坑一:成语、诗句、歌词都在字典里

「床前明月光」「一帆风顺」「面朝大海」这类短语看着文雅,实际是攻击者字典的第一梯队。常用成语约 3 万条,即便随机挑 4 个成语,熵也只有 log₂(30000⁴) ≈ 59 bit,而且真实语料高度集中在几百个高频成语里,实际强度更低。成语的特点恰恰是「大家都熟」,而「大家都熟」等于「字典里有」。

坑二:拼音全拼会被输入法词库反向利用

如果你用 woaini520、zhangsan1990 这种全拼串,攻击者不需要懂中文也能用中文姓名拼音表 + 常用词拼音表组合爆破。更隐蔽的是:云端输入法会记录你的用词习惯。同一个账号在登录页反复输入某个词的拼音,这个词就更容易出现在联想第一位,也更容易被旁人或录屏看到。

坑三:中文单字的信息密度被高估

一级常用汉字 3500 个,一个字约 11.8 bit;听上去不错,但人不会随机挑字——真实的「随机中文串」往往来自几十个高频字,4 个字可能不到 25 bit。相对来说,英文随机词表 + 中文记忆场景是更稳的组合:词表是机器随机的,故事是你自己编的。

中文短语写法攻击者怎么破结论
四字成语组合成语词典 + 高频排序不要用于主密码
诗句 / 歌词全网语料库直接匹配不要用
姓名拼音 + 生日姓名表 + 日期规则一秒破
随机具体名词(跨语种)需要覆盖多语言词表,成本陡增可用,≥5 个
骰子法英文词表 + 自编故事只能穷举 7776ⁿ推荐

造词四步:10 分钟做完

  1. 定词数:主密码 6 词,设备解锁/Wi-Fi 4~5 词,加密备份口令 6 词以上。先按用途定数量,别先想词。
  2. 用真随机源取词:拿 5 颗骰子掷 5 次得到一个 1~7776 的数(EFF 长词表就是这么设计的),或直接用密码管理器/离线脚本的「随机短语」功能。不要自己「随便想」——人对随机的直觉很差。
  3. 只挑具体名词和动词:`harbor`、`ladder`、`otter`、`vanish` 这类能画出来的词,比 `justice`、`system` 好记十倍。避免形容词和抽象词。
  4. 固定分隔符 + 一个位置固定的加盐:比如词间用 -,末尾固定加 3 位只有你知道的字符(如 #K7)。加盐不要放在开头,也不要每年换位置——换位置等于给自己制造记忆事故。
密码短语长度与强度的关系:短而复杂的密码串对长而简单的随机词串
长度带来的熵增长是线性的,复杂度带来的增长很快撞到人类规则的天花板。

哪些账户该用短语,哪些必须随机

场景推荐形式理由
密码管理器主密码6 词短语 + 固定加盐唯一必须靠人脑记住的钥匙,且不能写下来
手机 / 电脑解锁4~6 位数字 + 生物识别,或 5 词短语每天输入几十次,可用性优先,配合设备加密
全盘 / 备份加密口令6 词以上,单独一个恢复时要手输,离线爆破无速率限制
家庭 Wi-Fi5 词短语要念给客人听,不能有歧义字符
邮箱、网银、社交管理器生成的 16 位随机串 + 双因素每天不用手输,强度优先
一次性站点、试用账号随机串,用完即弃没有记忆价值

注意最后一行和第一行的关系:短语是给「必须记住」的密码用的,不是给所有密码用的。如果你的主密码已经是 6 词短语,其余密码就不该再占用记忆——这也是主密码忘了怎么办里最想避免的局面:把所有账号都压在一个人脑记忆上。

记住它的三个动作

还有一个容易被忽略的细节:关掉输入法的云同步和用户词库上传,登录主密码时切到英文键盘。中文输入法在密码框里留下的候选记录,是本地取证和录屏泄露的常见来源。

发布前自检清单

常见问题

中文短语一定不安全吗?

不一定,但要求更高:必须是机器随机取的中文词(不是自己想),词数 ≥6,且不能用成语和常见搭配。达到这个标准的中文短语和英文短语强度相当,只是造词工具更难找,输入时也更容易被输入法干扰。

短语里能不能加年份或网站名?

不要。加网站名等于把「一站一密」变成可推导规则,一个站泄露就能推出其余站;加年份则把熵砍掉十几个 bit。需要区分站点就交给密码管理器,它本来就是干这个的。

5 个词够不够用网银?

够,但没必要。网银每天不用手输,应该用管理器生成的随机串 + 双因素;把 5 词短语留给必须手输的主密码和设备解锁,收益更高。

把短语写在纸上安全吗?

比自己想一个弱密码安全得多。关键在存放方式:单独一张纸、不和设备放一起、写提示不写全文。纸质备份的唯一敌人是火灾、丢失和被同住者看到,这三件事都能用「异地 + 不标注用途」缓解。

小结

密码短语的核心不是「造句」,而是用机器随机选词,把长度堆到 5 词以上,再避开中文语料里那些人人都会想到的组合。做完这三件事,你就有了一个能复述、能通过离线爆破考验的主密码;剩下的密码交给管理器随机生成,再配一层双因素(两步验证怎么开启),整套账号安全的底座就算搭好了。

← 返回首页 更多「密码管理」