密码强度检测(被猜中的难易程度与破解时间)

根据密码长度、字符类型、常见密码、键盘排列、连续字符和日期等模式,在浏览器内估算密码被猜中的难易程度与破解时间范围,不会发送或保存密码。

  • 在浏览器内处理(不上传)

检查只在这个浏览器中进行,输入的密码不会被发送、保存或记录。

这不是泄露检查:不会查询 Have I Been Pwned 等泄露数据库,只在你的设备上估算密码被猜中的难易程度。

输入框默认填入示例“P@ssw0rd2024”,请改成你想检查的密码。

模式示例

估算结果

强度: 非常弱(0/4)

估计猜测次数
15,000
熵值换算
约 14 比特
长度
12 个字符
使用的字符类型
英文小写、英文大写、数字、符号或空格

破解所需时间(估计)

试完估计猜测次数所需的时间。范围来自假设的攻击速度差异,实际可能更早或更晚被猜中。

  • 在线攻击(有次数限制)登录尝试被限制为每小时 10~100 次6 天~2 个月
  • 在线攻击(无限制)每秒可尝试 10~100 次3 分钟~25 分钟
  • 离线攻击(慢速哈希)对泄露的 bcrypt、scrypt、Argon2 哈希每秒尝试 1,000~100,000 次瞬间(不到 1 秒)~15 秒
  • 离线攻击(快速哈希)用 GPU 对未加盐的 MD5、SHA-1 等哈希每秒尝试 100 亿~1 万亿次瞬间(不到 1 秒)

注意事项

  • 包含常见密码。
  • 年份很容易被猜到。

改进建议

  • 使用 15 个字符以上,或用几个不相关的单词组成密语(passphrase)。
  • 避免使用常见密码或其中的一部分。
  • 用 @ 代替 a 这类容易预测的替换,几乎不会让密码变强。
  • 只把开头或全部字母改成大写,几乎不会让密码变强。
  • 避免使用生日、纪念日等与自己相关的日期或年份。
  • 每个服务都使用不同的密码;用密码管理器生成并保存最可靠。

找到的模式

只有打开“显示密码”时才会显示对应的字符。

  1. 常见密码第 1~8 个字符 · ••••••••10,001 条中的第 1 名、含符号或数字替换、含大写约 3 比特
  2. 年份第 9~12 个字符 · ••••约 4 比特
常见密码列表的来源与许可证(SecLists,MIT License)

SecLists, Passwords/Common-Credentials/10k-most-common.txt https://github.com/danielmiessler/SecLists (commit 913b327317496d062bcc7cace524aaad8a693be2) MIT License Copyright (c) 2018 Daniel Miessler Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

使用方法

  1. 输入要检测的密码(输入框默认有示例;勾选“显示密码”可以看到字符)。
  2. 查看强度评级、估计猜测次数,以及各种攻击方式的破解时间范围。
  3. 参考注意事项和改进建议,把密码改得更长、更难猜。

常见问题

输入的密码会被发送到别处吗?

不会。所有评估都在浏览器内进行,密码不会被发送、保存或记录,也不会出现在网址中。“复制结果”复制的内容也不含密码。

能知道密码是否已经泄露吗?

不能,这不是泄露检查。不会查询 Have I Been Pwned 或其他泄露数据库,只会比对公开的常见密码列表(SecLists,约 1 万条)。

猜测次数和破解时间是怎么计算的?

工具会查找常见密码(含大写、符号替换和倒序)、重复、连续字符、键盘排列、日期和年份,并找出能以最少猜测次数覆盖整个密码的组合(采用 zxcvbn 论文的方法,独立实现)。没有模式的部分按字符类型以暴力破解计算。再把次数除以假设的速度:从每小时 10~100 次(有次数限制的在线攻击)到每秒 100 亿~1 万亿次(针对快速哈希的离线攻击)。

强度评级是怎么确定的?

依据估计猜测次数:10^6 次以上为“弱”(有次数限制的在线攻击需要 1 年以上)、10^12 次以上为“一般”(针对慢速哈希的离线攻击也需要数月以上)、10^17 次以上为“强”(即使是快速哈希也需要 1 天以上)、10^20 次以上为“非常强”(快速哈希也需要 3 年以上)。

怎样才能设置强密码?

使用 15 个字符以上,或由 4~5 个不相关单词组成的密语。每个服务使用不同的密码,交给密码管理器生成和保存,并尽量开启两步验证。

注意事项与限制

  • 你输入的内容只在本页面处理,不会发送到 YUCTS 的服务器。
  • 结果只是估计。实际攻击者使用的字典和方法不同,所需次数和时间可能相差很大。
  • 字典只有约 1 万条常见密码(SecLists)。不在列表中的普通英文单词、人名或拼音不会被识别,因此由单词组成的密码可能显示得比实际更强。
  • 无法考虑你的姓名、生日、宠物名字等个人信息。
  • 键盘排列只考虑英文(美式)QWERTY 布局。
  • 这不是泄露检查,不会查询任何泄露数据库。
  • 密码不会离开浏览器,也不会被保存或记录。最多评估 256 个字符。

数据来源