跳到正文

密码强度检测

Password Strength Meter

估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。

只数字符种类的强度条会把 `P@ssw0rd1` 评为强、把 `mineral cobbler thrift` 评为弱,而这两个判断都反了:首字母大写、a 换成 @、末尾加个 1,是破解器最先尝试的规则,不是最后才试的。这里按攻击者的数法来估算猜测次数——找出能拼回这个密码的最便宜的一组模式。

🔒 完全在你的浏览器里运行passwordstrengthentropy

密码只在这个标签页里测量。不发送、不做哈希、不保存,也不拿去任何泄露名单里比对——那样做就得把它的一部分交给别人的服务器。

这是怎么算出来的

不是靠数字符种类。它找的是破解工具有廉价规则的那些套路——字典词、倒着写的词、形近替换、键盘连排、重复、递增、日期——然后算出用这些拼出你这个密码的最便宜路径值多少钱。这是 zxcvbn (Wheeler, USENIX Security 2016) 模型的独立实现,比对 222个常见密码、353个英文单词、99个人名,以及 EFF 那份 7,776词的口令表。

真实攻击者手里的名单比这些大。这个页面认不出来的密码,也可能就在其中某一份里。这里给出的是猜解难度的下限——强度估算要出错,只能往这个方向错才算诚实。

需要一个分数高的?生成一条口令短语,或者生成一个随机密码。

怎么用

  1. 输入或粘贴密码

    不哈希、不保存、不发送。分析在标签页里的这个字符串上运行,所以这里不查泄露数据库——那是另一个工具。

  2. 看模式拆解,不只看分数

    工具会点出它识别出的每一段是什么——字典词、键盘连按、日期、重复——以及这一段让攻击者付出多少代价。该改的是便宜的那一段。

  3. 对比两种攻击速度

    同样的猜测次数,面对限速的服务器登录是好几年,面对泄露哈希的离线攻击是几分钟。按这个密码实际所处的情形来判断。

常见问题

这是 zxcvbn 吗?

它遵循已发表的算法(Wheeler,USENIX Security 2016),但是独立实现,用的是本项目自己的、小得多的字典。数字和 zxcvbn 的形状相同,数值并不相同。

它说我的密码很强。那就安全了吗?

它的意思是:这个工具没在里面找到便宜的模式。攻击者手里有、而这个工具没有的词表,照样能破解它;在一个已经泄露过的网站上复用过的密码,不管分数多高都已经是破解状态。再拿它去泄露检测工具查一遍。

为什么末尾加个符号几乎不起作用?

因为那是一条规则,而规则很便宜。破解程序照例会给每个字典词追加每一个符号,所以一个符号只把工作量乘以几十,而不是乘以字符集大小。多加一个词,乘的倍数大得多。

密码会离开标签页吗?

不会。这个工具里没有任何网络请求——连哈希前缀都不发,所以泄露查询才特意做成了单独的工具。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。