密码一定要加符号和数字吗?复杂度规则的真相

结论先行:符号和数字不是没用,而是被高估了。让你把 Password 改成 P@ssw0rd 的那套复杂度规则,对现代破解工具几乎透明。NIST 已明确不建议强制复杂度,因为它制造的是“看起来复杂”的假安全感。本文讲清规则的来历、真实增益,以及网站硬性要求时怎么应对才不吃亏。看完你就明白,下次注册时被复杂度校验拦住,该妥协的是格式,不该妥协的是长度。

官方规则核对:2026-10-29 · OpenAA 中文整理

复杂度规则是怎么来的

早年间的密码指南假设:字符种类越多,组合空间越大,密码越难破。这在纯暴力枚举的模型下成立,于是各家网站纷纷加上“必须包含四类字符”的注册校验,一直沿用至今。

问题在于真实攻击很少靠纯枚举。攻击者手里有几十亿条真实泄露密码组成的字典,加上成熟的变形规则:首字母大写、a 换 @、o 换 0、末尾加数字和感叹号。你以为的巧思,正是字典里排在前面的一批候选。

NIST 为什么不再推荐强制复杂度

NIST 在 SP 800-63B 中明确:验证方不应强制组合规则,而应把精力放在长度下限、允许足够长的上限、拦截已知泄露密码这三件事上。强制复杂度的实际效果,是把用户逼向可预测的模板化密码。

换个角度理解:复杂度规则改变的是密码的“长相”,长度改变的是密码的“数量级”。一个 16 位全小写的随机密码,组合数量远超 8 位四类齐全的密码,而且后者还常带着人类的套路。

符号的真实增益:有,但排在长度后面

在长度相同的情况下,字符集从小写 26 种扩到大小写加数字 62 种、再扩到含符号的约 90 余种,组合空间确实会成倍增加。如果密码本来就是随机生成的,加上符号只有好处。

所以结论不是“别用符号”,而是顺序问题:先保长度,再开全字符集。用生成器造密码时,长度 16 位以上、字符集全开,符号自动就包含进去了,你完全不需要手动去想哪个位置放感叹号。

举个直观的对比:一段由生成器随机产出的 16 位小写加数字密码,攻击者要枚举的组合数量级,和一段 8 位四类齐全但由人手拼的密码相比,高出不止一个层次。这也是为什么本文反复强调先长度、后字符集的顺序。

网站硬性要求复杂度时,怎么应对

不少银行和政务网站仍保留旧规则,甚至限制最长长度和可用符号。应对方法是:在它规则内拉满长度,然后在管理器里用 password-generator 勾选全部字符集生成,生成结果天然包含四类字符,一次通过校验,不用自己拼凑。

还要留意两类坑:一是只许 8 到 12 位的短上限,这类站点务必再开双重验证补强;二是改密时不许与历史密码“过于相似”,这时换一个全新随机密码即可,别在旧密码尾巴上加数字硬凑。

别再用这些“聪明”套路

流传最广的几个套路都已失效:把单词里的字母换成形近符号、用键盘斜排当密码、用名言首字母缩写。这些模式在公开的密码分析里被反复统计过,出现频率高得惊人。

判断标准其实很简单:你的设密方法能不能用一句话向别人说清?能说清的方法,攻击者同样能写成规则批量生成。真正强的密码应该来自随机过程,而不是来自聪明——聪明是有规律的,随机没有。

常见问题

全小写的长密码安全吗?

随机生成的 16 位以上全小写密码,强度足够用于绝大多数账户;但既然生成器能顺带加上大小写、数字和符号,没有理由不用全字符集。

网站说我的密码“强度弱”,一定是真的弱吗?

不一定。很多强度条只按字符种类打分,会给短而花哨的密码高分、给长随机密码低分。判断主要看长度和是否随机,而不是那个进度条。

密码里能用空格吗?

部分系统支持,短语密码常用空格分隔单词;但也有网站会静默截断或报错。用之前先确认该网站改密成功并能重新登录,避免被锁在外面。

银行密码只能是 6 位数字,安全吗?

这类是交易 PIN 而非完整密码,安全性靠银行的失败锁定和风控兜底。不要用生日,也不要和手机锁屏、其他银行卡 PIN 完全相同。

检查我的材料

→ 使用密码生成器。按需要继续使用下面的相关工具。

官方来源与适用范围

本文为中文整理的生活指南,数字为估算或区间,具体以官方最新公布为准。

攻略看完了,去做一次模拟考试

到 dmv.openaa.com 选择你的州,刷中文题库、做模拟考试,考前检验一下。去刷 DMV 中文题库 →