密码泄露检测
Breach Check
查一个密码有没有出现在 Have I Been Pwned 的泄露数据里,浏览器只发出它 SHA-1 哈希的前五位(k-匿名)。
出现在公开泄露语料里的密码不是“弱”——它已经是已知的了,再长、熵再高也补救不了。这里把你的密码拿去和 Have I Been Pwned 的 Pwned Passwords 数据集比对,而密码本身、或者它的完整哈希,从不离开标签页。
密码在这个标签页里先算成 SHA-1 哈希,只把哈希的前 5 个字符发给 Have I Been Pwned(k-匿名)。服务会返回几百条共用这个前缀的泄露哈希,你那条在不在其中,由你的浏览器比对。我们的服务器全程不参与。
这里不提供按邮箱查泄露:Have I Been Pwned 为那条接口要付费 API 密钥,而且它不是 k-匿名的。你可以自己去 haveibeenpwned.com 查。
怎么用
输入密码
它在浏览器里用 SHA-1 哈希。只有这个哈希的前五个十六进制字符会被发出去。
服务返回的是一个范围,不是一个答案
几百个泄露过的哈希共享这个前缀。它们全部返回,由你的浏览器在列表里找你的那一个——服务永远不知道是哪一个,甚至不知道它在不在里面。
命中就立刻处理
计数大于零,意味着在它用过的每一个地方都要改掉,不只是你注意到的那一个。这个计数是包含它的泄露记录条数,不是你被泄露的次数。
常见问题
我的密码会到达任何人的服务器吗?
不会。发出去的是 SHA-1 哈希的五个十六进制字符;这个前缀被几十万个可能的密码共享,无法反推。请求从你的浏览器直接发到那个 API——本站的服务器不在路径上。
能查邮箱地址有没有泄露吗?
这里不能。邮箱查询需要付费的 API 密钥,而且没法用 k-匿名的方式做,所以宁可不提供,也不做得很糟。
没查到。那密码就安全了吗?
它的意思是这个密码不在这份语料里。从未公开的泄露、或者从未进入这个数据集的泄露,不在覆盖范围内——而一个在所有列表里都不存在的密码,仍然可以很弱。再拿它过一遍强度检测。
为什么用已经被攻破的 SHA-1?
因为公开的语料就是按 SHA-1 索引的,协议也是这么定义的。这里依赖的不是抗碰撞性——哈希在这里是查找键,不是密码存储。
可以从这些接进来
密码强度检测
Password Strength Meter
估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。
临时邮箱
Disposable Email
给你一个在限定时间内能收信的一次性收件箱,附件可以直接在页面里看。
密码管理器导出转换
Password Export Converter
在 1Password、Bitwarden、Chrome/Edge、KeePass、KeePassXC 和 LastPass 的 CSV 导出格式之间互转,每种格式的列对应关系都写明。
密码生成器
Password Generator
按长度、字符集和是否排除易混字符的规则生成随机密码,需要的话可以一次生成很多条。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
密码生成器
Password Generator
按长度、字符集和是否排除易混字符的规则生成随机密码,需要的话可以一次生成很多条。
密码强度检测
Password Strength Meter
估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。
临时邮箱
Disposable Email
给你一个在限定时间内能收信的一次性收件箱,附件可以直接在页面里看。
CORS 跨域检测
CORS Tester
从你指定的来源发出浏览器会发的预检请求,再带上同一个 Origin 发一次 GET,并按 Fetch 标准的规则说清究竟是哪个响应头把它挡住了。
汇率换算
Currency Converter
按欧洲央行每日参考汇率经欧元交叉换算三十来种货币,也可以直接填入你自己拿到的那个汇率。
日期天数计算
Date Difference
数出两个日期之间的天、周、月、年数,带倒数日显示和只算工作日的选项。