免费密码强度检测工具(password checker)
用这款 password checker 检查你的密码是否安全。在上方输入或粘贴密码,即可查看密码强度、破解所需时间,以及它是否在最常泄露的 100 万个密码之列。检测会在你输入时直接在浏览器中进行,密码始终不会离开这台设备。
当你停止输入时,它还会在 Have I Been Pwned 的 Pwned Passwords 列表中查询该密码,只发送经过混淆处理的密码指纹中的 5 个字符,绝不会发送密码本身。查看具体发送了哪些信息。
检测结果说明
大多数密码并不是被人在登录页面上反复输入、猜出来的。网站遭到入侵后,存储的密码被盗,攻击者就会在自己的电脑上针对这份列表进行猜测,硬件有多快就猜多快。检测工具显示的是 1,000 张显卡全速猜测所需的时间,并据此划分强度等级:
- 很强
- 100 万年或更久
- 如果密码是随机生成且不重复使用的,那么在本检测工具能判断的范围内,其强度足以应对所有情况
- 强
- 不到 100 万年
- 适用于大多数账户,前提是不重复使用
- 一般
- 不到 100 年
- 下次登录时更换
- 弱
- 不到 1 年
- 立即更换,所有使用该密码的地方都要更换
看似很强,其实不然
大多数密码检测工具只看长度和字符种类,因此会给 P@ssw0rd2024! 这样的密码打高分。破解工具却不靠这些来判断;它们会优先尝试人们常用的密码模式。下面是本工具对一些看起来还不错的密码给出的检测结果:
P@ssw0rd2024!已泄露一个单词,加上形似字符替换、年份和符号:在数据泄露记录中出现过约 500 次Password123!已泄露在数据泄露记录中出现过约 300,000 次Liverpool1892已泄露球队名称加成立年份:在泄露记录中出现过约 27,000 次k7#Rq!9vT$2m@Lx很强随机字符组合:破解需要 3,100 万年
只要密码出现在数据泄露记录中,无论强度如何都不安全,因为攻击者会优先尝试已泄露的密码。密码检测工具可以指出密码较弱,却无法证明密码安全。
来源:显卡性能测试(hashcat)、zxcvbn(USENIX Security)、NIST 密码指南、NIST 关于量子计算的说明。词表来自 Hermit Dave 的 FrequencyWords,采用 CC BY-SA 4.0 许可协议。
检查泄露记录时会发送什么
逐字输入时不会发送任何内容。当你停止输入或粘贴密码时,会执行一次以下过程,这里以密码 password 为例:
- 你输入密码
password留在你的设备上 - 浏览器将密码转换为 SHA-1 指纹
5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8留在你的设备上 - 只有前 5 个字符会发送给 Have I Been Pwned
5BAA6已发送 - 该服务会返回所有以相同字符开头的已泄露密码指纹,约 2,000 条,其中混有用于掩护的虚假条目浏览器在其中查找匹配项
该服务始终无法看到密码或完整指纹,因此无法知道你检查的是这 2,000 条中的哪一条。
- 快速泄露检测在你的设备上完成。页面会一次性下载一份精简的指纹列表,涵盖泄露次数最多的 100 万个密码,因此输入时的检测完全无需发送请求。误报概率约为百万分之一。
- 每个密码只发送一次请求,绝不会每按一次键就发送一次。检测会等到你停止输入后才进行。如果密码已在设备上的列表中,就完全不会发送任何信息;对同一密码做小幅修改(如纠正输入错误、添加几个字符),最多只会检测两次,因为对比几乎相同的查询可能会暴露密码。有些检测工具会在每次按键时发送查询,这些查询结合起来,就会逐字泄露密码。
- 不保留任何内容。密码绝不会被存储,也不会出现在地址栏中,离开页面后就会消失。
- 你可以自行验证。打开浏览器开发者工具中的“网络”标签页,然后输入密码:停止输入前不会发送任何请求。之后,你会看到一个发往 api.pwnedpasswords.com 的请求,其地址以本节显示的 5 个字符结尾。你也可以断开网络:除完整的泄露检测外,其他功能都能继续使用。
已泄露密码数据:由 Have I Been Pwned 提供的 Pwned Passwords,依据知识共享署名 4.0 许可协议使用。
如果你的密码强度弱或已泄露
常见问题
什么样的密码检测工具最安全?
一个在你输入时不发送任何数据,并允许你亲自验证的工具。本页会在你的设备上检测密码强度,并检查密码是否在泄露次数最多的一百万个密码中。完整的泄露检测会等到你停止输入后,只发送一次密码指纹中的 5 个字符。你可以在浏览器的“网络”标签页中查看,也可以断开网络,看看检测工具是否仍能正常工作。
如何检查我的密码是否已泄露?
在上方输入或粘贴密码。如果它属于泄露次数最多的一百万个密码,你会立即看到提示。当你停止输入时,工具还会检查所有已知泄露记录。只要密码出现在泄露记录中,就应停止使用。
使用 Have I Been Pwned 安全吗?
用它检查密码是安全的。它的密码检测机制确保它不会收到你的密码:浏览器只发送密码指纹的前 5 个字符,并在本地完成最终比对。本页还会要求在返回结果中加入虚拟条目,这样连返回数据的大小也不会透露信息。
哪个密码被泄露的次数最多?
123456,在数据泄露中出现了超过 2.1 亿次,其次是 123456789、12345678、password 和 qwerty(数据来自 Have I Been Pwned)。随手就能想到的密码,都已经在这些列表里了。
能给我一个强密码的例子吗?
任何公开过的密码示例都不再是强密码,因为它已经被收录到密码列表中了。就连 xkcd 漫画中的 correcthorsebatterystaple 也已在泄露记录中出现了数千次。强密码应该是专门为你随机生成的:请使用密码生成器或密码短语生成器。
破解我的密码需要多长时间?
在上方输入密码,检测工具就会显示 1,000 张显卡针对被盗密码列表全速猜测时,破解它所需的平均时间,这是值得提前防范的情况。一个由 8 个随机字符组成的密码几秒钟就会被破解;一个由 16 个随机字符组成的密码则需要约 30 亿年。
为什么其他检测工具显示的破解时间更长?
每个检测工具都必须假设攻击者的能力,但大多数不会说明具体假设。许多工具假设网站采用了刻意降低计算速度的密码存储方式,让攻击者每秒只能猜测几千次。有些工具使用多年前的显卡速度,还有些只看密码长度,忽略了单词、日期等规律。我们采用更严苛的情况,并明确说明:由 1,000 张显卡针对被盗密码列表全速猜测。许多管理得当的网站,其密码破解起来会慢得多,但你无法判断一个网站属于哪种情况,因此应将我们给出的时间视为需要防范的最坏情况。
为什么很长的密码仍然显示为弱?
因为破解工具不会逐个字母猜测。它们会猜测完整的单词、人名、地名、日期和常见密码,再将它们组合起来并加上数字。LiverpoolFootball1892 有 21 个字符,但在破解工具看来,它只是两个常见单词加上一个年份:大约需要猜测一亿次,一张显卡不到一秒就能完成。只有当字符难以预测时,长度才有帮助,比如随机密码,或由随机单词组成的密码短语。
在哪里可以查看我保存的哪些密码已泄露?
密码管理器可以一次检查所有已保存的密码。在 iPhone 或 Mac 上,打开“密码”应用,查看“安全”部分。在 Chrome 中,Google 密码管理器提供“密码检查”功能。NordPass、Bitwarden、1Password 和大多数其他密码管理器也提供类似的报告。