使用方法
- 把想检查的密码填进输入框——注意是已经在你手里的密码,示例值 Tg#Kv92!xq 打开页面即可直接检测。
- 选一个攻击者假设:默认「离线显卡集群 100 亿次/秒」,对应数据库被拖走后离线爆破的场景;若担心在线撞库,切到限速 1 万次/秒。
- 点「开始检测」或按 Enter。结果区给出四项:总分与档位、字符池、信息量(熵)、平均破解时间。
- 往下看逐项扣分明细:绿色是加分项,红色是扣分项,每条都写明触发原因,比如「命中字典词 love −25」。
- 点「复制体检报告」可把得分、明细和时间估算一起带走;换一条密码继续测,或点「重置为示例」还原演示条件。
这个密码力量检测工具能解决什么问题
一是给存量密码做体检:多数人有一批多年前设置的口令,长短、组成、怪癖各不相同。逐条测一遍,把得分最低的几条排进更换队列,比凭感觉「这个应该还行」可靠。
二是识破「看着复杂其实好猜」的模式:Love2026abc 这类密码四类字符齐全,熵公式算出来不低,但「love」在攻击字典最前排、「2026」是年份。本工具用模式扣分把这类问题显式标出来——这是纯长度计算看不到的。
三是把「强不强」翻译成时间量级:「很安全」没有意义,「按每秒 100 亿次穷举平均要 94.9 年」才有意义。换一个速率档,你能看出网站限速把破解时间拉大了多少。
四是改密码前先比较方案:加长度还是加符号?把两个候选各测一遍,看分数与时间的差距再决定。
本页不做的事:不做密码生成——想换新密码请用页面底部的密码生成器族工具;不做真实泄漏库查询(原因见下方边界一节);不保存任何历史检测记录。
原理与规则说明:评分权重与扣分明细
密码力量检测的评分表全部写在本节,逐条可核对。基础分由两项构成,上限 80。长度分分四档:1~7 位记 0 分,8~11 位 +20,12~15 位 +30,16~19 位 +40,20 位及以上 +50。字符类别分:出现小写字母 +7、大写字母 +8、数字 +7、符号 +8,四类全齐恰好 +30。长度档位故意设计成「20 位才给满分」——长密码比复杂符号更值得投资,这是评分表的立场,不是随意取整。
扣分项六条,全部有具体触发条件。命中内置字典词(30 个最高频弱口令词,如 password、love、abc123)−25;命中键盘走位(qwertyuiop、asdfghjkl、zxcvbnm、1234567890、1qaz2wsx 及其倒序)−20;出现 ≥4 位连续升序或降序字符(abcd、4321)−15;同一字符连续 ≥3 次(aaa)−15;含 19xx/20xx 年份 −10;全程只用单一字符类别再 −10。总分截断在 0~100。
档位阈值:低于 40 弱,40~59 中,60~79 强,80 及以上很强。按这套权重,四类字符全齐且无任何扣分的密码要到 20 位才能上 80 分(50+30),所以「很强」这个档位实际上是在要求你放弃短密码。
熵与破解时间只作参照,不参与评分。字符池按出现的类别累加(数字 10、小写 26、大写 26、符号 33,四类全齐 95),信息量 H = 长度 × log₂(池);平均穷举次数按取值空间的一半计,再除以你选的速率。这两项回答「机器穷举要多久的量级」,评分回答「真人设定的模式会便宜多少」——两个口径,见下文边界一节。
完整示例(数值仅作演示)
下面用密码力量检测的默认条件复现两个典型结果,条件与页面打开时的值完全一致(速率选离线 100 亿次/秒)。
示例一:Tg#Kv92!xq(页面默认值)。长度 10 位 +20;四类字符全齐 +30;无任何扣分命中——总分 50,档位「中」。字符池 95,信息量 65.70 bit;按离线 100 亿次/秒平均穷举约 94.9 年。分数只到「中」的原因就是长度:10 位在这个评分表里只值 20 分。
示例二:Love2026abc。长度 11 位 +20;小写 +7、大写 +8、数字 +7(无符号);扣分:命中字典词「love」−25、含年份 2026 −10——总分 7,档位「弱」。有意思的是它的字符池是 62、公式信息量 65.50 bit,与示例一只差 0.2 bit,但一个 50 分一个 7 分:公式假设攻击者均匀穷举全部组合,而真实攻击者会先跑字典和年份变体,几十秒内就能命中。这就是评分与熵必须分开看的原因。
输入范围与强度对照表
输入接受 1~128 个可见字符;空串直接报错。下表固定「四类字符全齐、无模式扣分」的口径,逐档给出熵、穷举时间与本页评分(代表样本已避开年份等扣分触发):
| 长度 × 组成 | 字符池 | 信息量 | 100 亿次/秒穷举 | 本页评分 |
|---|---|---|---|---|
| 8 位纯数字 | 10 | 26.58 bit | 0.005 秒 | 17 · 弱 |
| 8 位四类 | 95 | 52.56 bit | 3.8 天 | 50 · 中 |
| 12 位纯小写 | 26 | 56.41 bit | 55.2 天 | 27 · 弱 |
| 12 位四类 | 95 | 78.84 bit | 约 85.6 万年 | 60 · 强 |
| 16 位四类 | 95 | 105.12 bit | 6.97×1013 年 | 70 · 强 |
| 20 位四类 | 95 | 131.40 bit | 5.68×1021 年 | 80 · 很强 |
换速率对结果影响极大:同一条 12 位四类密码,在线限速 1 万次/秒要 8.56×1011 年,离线 100 亿次/秒是 约 85.6 万年,超大规模集群 1 万亿次/秒也要 8561.5 年——这就是为什么网站被拖库比被在线撞库严重得多。另外注意 8 位纯数字那一行:纯数字样本若含 1975、2026 这类年份段,还会额外吃 −10。
边界、阈值与误读说明
熵低分不一定低,熵高分不一定高。熵只看字符池和长度,假设攻击者均匀穷举;评分针对真人设定密码时的模式偏好。Love2026abc 两个口径差出 43 分就是这个裂缝。反过来,一条 20 位无模式的随机串两项都高,才是真正的好密码。
字典表是内置的 30 个词,不是万能表。你的姓名拼音、生日组合、公司名不在表内,不会被扣分——但这不代表它们安全,只代表本工具没把它们当已知弱词。检测通过不等于免检。
为什么不做真实泄漏库查询。泄漏库核查服务(如 Have I Been Pwned)的标准做法是 k-anonymity:客户端算出密码的 SHA-1 摘要,只上传前 5 个十六进制字符,服务端返回该前缀下所有候选后缀,由本地比对——这样完整摘要不出设备。本页刻意只讲概念、不发请求,因为一旦联网,你就把「我在这台设备上测过某个前缀」这件事交给了第三方服务,与「密码不上传」的承诺矛盾。想查泄漏记录,请自行去该服务的官网操作。
其他边界。本页按可见字符处理,输入前后空格会被计入长度(它们也是真实字符);速率档是数量级假设,不针对任何具体硬件;破解时间是数学期望(平均试到一半命中),不是上限。误读最多的一条:把「60 分 · 强」理解为「绝对安全」——评分只覆盖穷举与模式风险,钓鱼、键盘记录、多站复用密码,再高的分也救不了。
常见问题
为什么「很强」要 20 位起步?
按本页权重,长度满分 50 只在 20 位及以上给到,四类字符加满 30,合计 80 才过线。这个门槛刻意定得高:长度每加一位,穷举成本乘以字符池大小,而换符号、换大小写只能把池从 62 拉到 95,只值几个 bit。
检测时我的密码会上传或记录吗?
不会。评分和熵计算都是十几个正则与求和,全部在当前页面完成,没有任何网络请求,也不写 localStorage。想验证,打开开发者工具的 Network 面板再测一次,看不到新请求。
得分高就代表绝对安全吗?
不代表。评分只覆盖「穷举要多久」和「模式有多好猜」两个维度。密码被钓鱼页面骗走、被键盘记录器截走、或你在十个站点复用同一条,攻击者根本不需要穷举。复用是比弱密码更高频的失陷原因。
泄漏库检查到底是怎么做到「不泄露密码」的?
靠 k-anonymity:客户端先算 SHA-1,只把前 5 个十六进制字符发给服务端。5 个字符对应约百万量级的候选集合,服务端无法从中还原你的密码,只能告诉你「这个前缀下有哪些已知泄漏的后缀」,比对在你本地完成。本页不做真实查询,理由见上一节。
熵 65 bit 和评分 50 分,到底信哪个?
两个都是真的,但回答不同问题。熵回答「如果攻击者别无选择只能穷举」;密码力量检测的评分回答「考虑到人类的起名习惯,攻击者能不能抄近道」。只要密码里存在字典词、年份这类人味儿,真实强度就更接近评分的判断。
abc 和 12345 同时出现,为什么顺序只扣一次 15?
顺序字符扣的是「整段可预测性」这一件事,多次出现同一种模式不叠加扣分,否则一条密码会被同一个问题反复惩罚。但键盘走位和顺序字符是两类不同机制,可以同时扣:1qaz2wsx 就会吃走位的 −20。
我的姓名拼音为什么没被扣分?
内置字典只有 30 个全球统计意义上的高频弱词,覆盖不了中文拼音姓名。没扣分不是免检信号:拼音姓名加年份恰恰是针对性攻击最先尝试的组合。想稳妥,把长度拉到 20 位或干脆换成无意义的随机串。
一串中文或口令短语测出来分数很低,怎么办?
本工具按字符类别打分,中文不在四类字符里,会被当成符号处理,口令短语也会因为全是小写而吃亏——这是评分口径的局限,不代表短语真的弱。四个随机单词拼成的短语抗穷举能力要看词表规模,那是另一套算法,请用口令短语生成器那边的说明来评估。