使用方法
- 在“密码”中输入密码。密码会被隐藏;按“显示”可查看您输入的内容。
- 按“检查”。页面会在浏览器中对密码做哈希运算,只发送哈希的前五个字符。
- 查看“结果”:显示“找到”并附有次数,表示该密码出现在泄露数据中;显示“未找到”,表示它不在此列表中。
- 如果找到了该密码,请在您用过它的所有地方更改。若要测试新密码,请使用密码强度检测工具。
发送了什么,没有发送什么
密码在您的浏览器中用 SHA-1 做哈希运算。哈希是固定为40个十六进制字符的字符串,例如密码 password 的哈希为 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8,且无法再还原为密码。页面只发送哈希的前五个字符,例如 5BAA6,在一次请求中发往 Pwned Passwords 服务的范围地址。
服务会返回所有以这五个字符开头的已知泄露哈希。随后,您的哈希其余的部分在您的浏览器中与返回结果比对。许多不同的密码共享同样的五个字符,因此服务无法得知您查询的是哪一个密码。这就是该服务所描述的 k-匿名方法。
- 发送的内容:哈希的五个字符,以及请求头 Add-Padding。该头部请求服务用空条目填充返回结果,使结果的大小不会暴露匹配了多少个哈希。与任何网络请求一样,服务能看到您连接所用的地址。
- 不发送的内容:密码、完整哈希、哈希的其余部分,以及密码的长度。请求不携带 Cookie,也不携带 Referer。
- 不保存的内容:页面不保存任何内容。刷新页面后,密码和结果都会被遗忘。
结果的含义
找到表示该密码出现在过去泄露的数据中,数字为它在列表中出现的次数。攻击者会用这类密码尝试登录账户,因此请在您用过它的所有地方更改。
未找到仅表示该密码不在此列表中。它并不能证明密码足够强,也无法涵盖列表所缺少的泄露数据。请用密码强度检测工具检查其强度。
计算示例:password
password 的 SHA-1 哈希为 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8。页面只发送前五个字符 5BAA6,并在返回结果中查找其余35个字符 1E4C9B93F3F0682250B6CF8331B7EE68FD8。若该后缀被列出且次数大于0,结果即为找到并显示该次数;若未列出,结果即为未找到。
常见问题
我的密码会被发送给服务吗?
不会。只发送密码 SHA-1 哈希的前五个字符。服务无法据此推算出密码,其余部分的哈希则在您的浏览器中比对。
为什么服务会返回许多哈希?
它会返回所有以相同五个字符开头的已知泄露哈希,因此无法判断您查询的是哪一个。这就是 k-匿名方法,它让检查得以进行,同时不泄露密码。
结果为找到时,我应该怎么做?
应将该密码视为已经暴露。请在您用过它的每个网站上更改,并且不要重复使用。若网站提供两步验证,请开启。
“未找到”是否表示密码是安全的?
不。该列表只包含在所涵盖的泄露事件中出现过的密码,因此弱密码仍可能不在其中。请也检查其强度:过短或常见的规律,即使尚未泄露,本身也是弱的。
页面会保存或记录我输入的内容吗?
不会。页面打开期间,密码只留在输入框和页面的内存中。浏览器中不会保存任何内容,也不会写入网址,页面也不会发出其他请求。
检查使用的是哪项服务?
是 Have I Been Pwned 的 Pwned Passwords 范围服务,其文档见 haveibeenpwned.com。页面直接从您的浏览器调用其范围地址。
资料来源
数据和文字最近核对于2026年11月10日星期二。