密码强度检测
Password Strength Meter
估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。
只数字符种类的强度条会把 `P@ssw0rd1` 评为强、把 `mineral cobbler thrift` 评为弱,而这两个判断都反了:首字母大写、a 换成 @、末尾加个 1,是破解器最先尝试的规则,不是最后才试的。这里按攻击者的数法来估算猜测次数——找出能拼回这个密码的最便宜的一组模式。
密码只在这个标签页里测量。不发送、不做哈希、不保存,也不拿去任何泄露名单里比对——那样做就得把它的一部分交给别人的服务器。
这是怎么算出来的
不是靠数字符种类。它找的是破解工具有廉价规则的那些套路——字典词、倒着写的词、形近替换、键盘连排、重复、递增、日期——然后算出用这些拼出你这个密码的最便宜路径值多少钱。这是 zxcvbn (Wheeler, USENIX Security 2016) 模型的独立实现,比对 222个常见密码、353个英文单词、99个人名,以及 EFF 那份 7,776词的口令表。
真实攻击者手里的名单比这些大。这个页面认不出来的密码,也可能就在其中某一份里。这里给出的是猜解难度的下限——强度估算要出错,只能往这个方向错才算诚实。
怎么用
输入或粘贴密码
不哈希、不保存、不发送。分析在标签页里的这个字符串上运行,所以这里不查泄露数据库——那是另一个工具。
看模式拆解,不只看分数
工具会点出它识别出的每一段是什么——字典词、键盘连按、日期、重复——以及这一段让攻击者付出多少代价。该改的是便宜的那一段。
对比两种攻击速度
同样的猜测次数,面对限速的服务器登录是好几年,面对泄露哈希的离线攻击是几分钟。按这个密码实际所处的情形来判断。
常见问题
这是 zxcvbn 吗?
它遵循已发表的算法(Wheeler,USENIX Security 2016),但是独立实现,用的是本项目自己的、小得多的字典。数字和 zxcvbn 的形状相同,数值并不相同。
它说我的密码很强。那就安全了吗?
它的意思是:这个工具没在里面找到便宜的模式。攻击者手里有、而这个工具没有的词表,照样能破解它;在一个已经泄露过的网站上复用过的密码,不管分数多高都已经是破解状态。再拿它去泄露检测工具查一遍。
为什么末尾加个符号几乎不起作用?
因为那是一条规则,而规则很便宜。破解程序照例会给每个字典词追加每一个符号,所以一个符号只把工作量乘以几十,而不是乘以字符集大小。多加一个词,乘的倍数大得多。
密码会离开标签页吗?
不会。这个工具里没有任何网络请求——连哈希前缀都不发,所以泄露查询才特意做成了单独的工具。
可以从这些接进来
bcrypt 与 argon2 校验
bcrypt & argon2 Checker
用指定 cost 对密码做 bcrypt 哈希,并把密码和现有的 bcrypt 哈希比对;argon2 认得出来但不计算。
密码生成器
Password Generator
按长度、字符集和是否排除易混字符的规则生成随机密码,需要的话可以一次生成很多条。
密码短语生成器
Passphrase Generator
从词表里按 diceware 方式拼出一句密码短语,并给出以比特计的熵。
密码泄露检测
Breach Check
查一个密码有没有出现在 Have I Been Pwned 的泄露数据里,浏览器只发出它 SHA-1 哈希的前五位(k-匿名)。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
密码泄露检测
Breach Check
查一个密码有没有出现在 Have I Been Pwned 的泄露数据里,浏览器只发出它 SHA-1 哈希的前五位(k-匿名)。
熵值测量
Entropy Meter
测量字符串或文件的香农熵并给出字节分布直方图,用来判断哪一段是密钥。
密码短语生成器
Passphrase Generator
从词表里按 diceware 方式拼出一句密码短语,并给出以比特计的熵。
密码生成器
Password Generator
按长度、字符集和是否排除易混字符的规则生成随机密码,需要的话可以一次生成很多条。
CORS 跨域检测
CORS Tester
从你指定的来源发出浏览器会发的预检请求,再带上同一个 Origin 发一次 GET,并按 Fetch 标准的规则说清究竟是哪个响应头把它挡住了。
汇率换算
Currency Converter
按欧洲央行每日参考汇率经欧元交叉换算三十来种货币,也可以直接填入你自己拿到的那个汇率。