密码力量检测

给一条已有密码做体检:长度与字符类别给基础分,字典词、键盘走位、顺序与重复字符、年份后缀逐项扣分,并按穷举速率估算破解时间。

提示:输入框里按 Enter 直接检测;检测在本页完成,密码不写入任何存储,刷新即消失。

使用方法

  1. 把想检查的密码填进输入框——注意是已经在你手里的密码,示例值 Tg#Kv92!xq 打开页面即可直接检测。
  2. 选一个攻击者假设:默认「离线显卡集群 100 亿次/秒」,对应数据库被拖走后离线爆破的场景;若担心在线撞库,切到限速 1 万次/秒。
  3. 点「开始检测」或按 Enter。结果区给出四项:总分与档位、字符池、信息量(熵)、平均破解时间。
  4. 往下看逐项扣分明细:绿色是加分项,红色是扣分项,每条都写明触发原因,比如「命中字典词 love −25」。
  5. 点「复制体检报告」可把得分、明细和时间估算一起带走;换一条密码继续测,或点「重置为示例」还原演示条件。

这个密码力量检测工具能解决什么问题

一是给存量密码做体检:多数人有一批多年前设置的口令,长短、组成、怪癖各不相同。逐条测一遍,把得分最低的几条排进更换队列,比凭感觉「这个应该还行」可靠。

二是识破「看着复杂其实好猜」的模式: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 位纯数字1026.58 bit0.005 秒17 · 弱
8 位四类9552.56 bit3.8 天50 · 中
12 位纯小写2656.41 bit55.2 天27 · 弱
12 位四类9578.84 bit约 85.6 万年60 · 强
16 位四类95105.12 bit6.97×1013 年70 · 强
20 位四类95131.40 bit5.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 位或干脆换成无意义的随机串。

一串中文或口令短语测出来分数很低,怎么办?

本工具按字符类别打分,中文不在四类字符里,会被当成符号处理,口令短语也会因为全是小写而吃亏——这是评分口径的局限,不代表短语真的弱。四个随机单词拼成的短语抗穷举能力要看词表规模,那是另一套算法,请用口令短语生成器那边的说明来评估。

相关工具