CodeKitHub
简体中文
隐私工具

密码泄露查询工具

查询一个密码是否已经出现在已知的数据泄露记录中,而密码本身全程不会被发送到任何地方。你的浏览器会在本地计算密码的哈希值,只把哈希的前5位发给一个公开的泄露数据库——这足够在数百万条共享同一前缀的哈希里做查询,但永远不足以还原出你的密码。

密码不会被发送——只有密码SHA-1哈希的前5位会发送给公开的k-匿名化API,用来在数千万条相同前缀的哈希里模糊查询,完整密码和完整哈希全程只留在你的浏览器里。

使用方法

  1. 输入或粘贴要查询的密码。
  2. 可以点"显示"确认输入是否正确。
  3. 点击"查询是否泄露"。
  4. 结果为绿色说明未在泄露数据库中找到;红色会显示出现过的次数。

示例

输入

password123

输出

⚠ 在已知数据泄露中出现过 2,643,916 次

这类常见密码会出现几百万次,因为它们在每个攻击者的首选猜测列表里,跟具体哪个网站泄露无关。

工具介绍

这个工具用来查询密码是否出现在Have I Been Pwned的Pwned Passwords数据库里,这个数据库收录了从真实数据泄露事件中收集到的数亿条密码。如果你的密码出现在里面,并不代表你的账号被盗,而是代表某个人在某个地方用过一模一样的密码,而那次泄露把它暴露了出来。

查询用的是一种叫k-匿名化(k-anonymity)的技术,专门设计成查询方永远看不到完整密码。你的浏览器在本地计算密码的SHA-1哈希,只把哈希值的前5个字符发给API。API会返回所有以这5个字符开头的泄露密码哈希(通常几百条),你的浏览器在本地比对完整哈希是否在这些结果里。完整密码和完整哈希全程留在你的设备上。

k-匿名化是如何保护你的密码的

一个简单粗暴的泄露查询工具需要拿到你的完整密码(或完整哈希)才能查询——这意味着你要把想要保护的秘密本身交给一个服务器。k-匿名化模型绕开了这个问题:你的浏览器用SHA-1对密码做哈希,只把这40个字符的哈希值的前5个十六进制字符发给API。

API会返回数据库里所有共享这5个字符前缀的哈希后缀——通常是300到800条,不只是你的那一条。你的浏览器在本地比对你的具体后缀是否在这些结果里。就算有人监听了这次网络请求,他们最多只知道"有人查询了以这个前缀开头的某个密码",而这个前缀对应着数百万种可能,根本不足以确定具体是哪一个。

查到结果之后该怎么做

  • 查到且次数很高:立即在所有用过的地方停用这个密码——它在每个攻击者的猜测列表前几位。
  • 查到但次数不高:同样应该停用。哪怕只泄露过一次,也说明它已经暴露了,跟次数多少无关。
  • 未查到:说明这个具体字符串目前不在数据库里,但在长期信任它之前,最好单独检查一下密码强度。
  • 查询一个准备设置的新密码和查询一个正在用的旧密码同样有意义——能在它成为账号弱点之前就发现问题。

密码生成器 · MD5 生成器

常见使用场景

  • 查询一个用了很多年、从没验证过是否泄露的老密码。
  • 在正式使用一个新生成或新想出的密码之前先确认一下。
  • 在轮换团队或家庭共用的默认密码之前先做个审计。
  • 如果有好几个重复使用的密码,根据泄露次数决定优先修改哪一个。

为什么使用它?

k-匿名化模型:只传输哈希的前5位,密码本身和完整哈希都不会被发送。

对照的是真实的、包含数亿条泄露密码的数据库,持续更新。

即时出结果——不需要账号、不需要邮箱、不会留存任何记录。

任何密码都能查——正在用的、准备设置的、或者很久以前用过想确认一下的。

常见问题

这个工具会把我的密码发送到服务器吗?

不会。你的浏览器在本地计算密码的SHA-1哈希,只发送这个哈希的前5个字符——密码本身和完整哈希都不会被发送。这就是Have I Been Pwned的Pwned Passwords API专门设计的k-匿名化模型,Chrome、Firefox和1Password内置的密码泄露检测功能用的也是同一套技术。

如果没查到,是不是说明这个密码很安全?

只能说明这个密码目前还没出现在这个数据库的泄露记录里,不代表它足够强。一个密码可以既是独一无二的、又是容易被猜到的(比如生日、简单规律)。建议把这个查询和密码强度检测配合使用,而不是只看有没有泄露过。

如果查到密码已经泄露,应该怎么办?

立即在所有用过这个密码的账号上修改密码,优先处理邮箱和金融账号。给每个账号生成独立的、随机的新密码——密码重复使用正是一次泄露会连锁波及多个账号的根本原因。

这是我自己想出来的密码,为什么泄露次数会有意义?

这个次数统计的不是你的具体账号,而是这个字符串本身在所有泄露数据库里出现过多少次——不管是谁用过它。次数越高,说明这是一个大家都会想到的常见选择,无论你是不是独立想出来的。

这和查询我的邮箱是否泄露是一回事吗?

不是,这是完全不同的两个问题。这个工具查询的是密码字符串本身是否出现在泄露数据里;查询某个具体邮箱地址是否卷入过数据泄露需要另外的查询方式(Have I Been Pwned官网提供这个功能),不在这个工具的范围内。

相关工具