每一份报名表都有实力表,他们很少同意。一个变成绿色 Summer2024!的,另一个称之为弱,第三个想要一个你已经打过的符号,分歧不是随机的,每个米都是攻击者猜测方式的小模型,每个模型都有盲点。
本指南解释了如何估计密码强度,通过对真实密码进行熵公式,破解时间数字假设什么,检查器可以检测哪些模式以及它不能检测哪些模式,以及 NIST 当前建议的指导而不是符号规则。示例使用 密码强度检查器并且下面的每个数字都是该工具针对所示密码报告的内容。
TL;博士: Password strength 是攻击者需要的猜测次数,通常用位表示为熵:长度× log2(字符池的大小),每个额外的位使工作加倍 Password Strength Checker 计算该数字,将其剪切为常见密码、重复模式、序列和键盘运行,并将结果从非常弱(28 位以下)到非常强(128 位及以上),破解时间估计为离线每秒 100 亿次猜测,在线每秒 1,000 次。熵公式看不到带有替换的字典单词,因此
P@ssw0rd1still score Fair。长度和随机性是有帮助的,检查运行客户端,免费,没有注册,密码永远不会上传。
密码强度是什么意思?
Password strength 是衡量攻击者平均需要多少猜测才能找到密码的指标,它不是衡量密码看起来有多复杂的指标,密码在不可预测时很强,从非常大的相同可能选项中选择时是不可预测的。
这就是为什么强度通常以位为单位引用。一个具有 40 位熵的密码很难猜测,就像从 2^40 中挑选一项一样,大约 1.1 万亿个相同可能的选择。每增加一位就会使搜索增加一倍。
密码熵是如何计算的?
标准估计值将密码 's 长度乘以每个字符贡献的位数, 这取决于它从以下位置提取了多少可能的字符:
entropy (bits) = length × log2(pool size)
检查器根据密码中存在的字符类型构建池:
| 字符类型 | 添加到池中 | 如果单独使用,则每个字符的位 |
|---|---|---|
| 小写字母 a 到 z | 26绔 涔诲芥澶澧 | 4.70 |
| 大写 A 到 Z | 26绔 涔诲芥澶澧 | 4.70 |
| 0至9位数字 | 10 | 3.32 |
| ASCII 符号和空间 | 33绔 涔诲芥澶澧 | 5.04 |
| ASCII之外的任何东西(口音,表情符号) | 100 | 6.64 |
ASCII所有四种类型的密码,其池为26 + 26 + 10 + 33 = 95,每个字符的log2(95) = 6.57位。
工作示例:随机 16 个字符的密码
- 池:全部四种类型,95个字符。
- 每个字符的位数:log2(95) = 6.5699。
- 熵:16 × 6.5699 = 105.1 位。
The checker 率那强,一个来自同一个池的 20 个字符的随机密码给出 20 × 6.5699 = 131.4 位,它将 128 位线交叉成非常强。
只有当密码真正是从该池随机生成的时,公式才是诚实的。人类选择的密码使用空间中的一小部分可预测的,这就是模式检查的用武之地。
检查器使用什么分数带?
调整模式后,检查器将熵转换为五个标签之一。
| 调整熵 | 标签 | 在实践中意味着什么 |
|---|---|---|
| 28位以下 | 很弱 | 任何攻击几乎立即被发现 |
| 28至36位以下 | 弱 | 离线快;在线保护有限 |
| 36到60位以下 | 公平 | 在线猜测中生存;离线时容易受到快速哈希的影响 |
| 60到128位以下 | 坚强 | 当前速度下的蛮力无法触及 |
| 128位和向上 | 很强 | 超越任何可预见的暴力 |
哪些模式会降低分数?
原始熵处理 aaaaaaaaaaaa 12个字符的小写密码,价值56位,没有人会称之为强,检查器在评分前应用了四种调整:
- 常见密码。 该密码(小写)与内置的 53 个泄露最多的密码列表进行了比较,其中包括
123456、password、qwerty、letmein並p@ssw0rd.一个匹配项在 8 位上限制熵。 - 整个密码重复。 如果整个密码重复一个短单位,例如
abcabc或aaaaaa中,熵折叠到大致为一个单位加上几个比特的熵。 - 运行相同的角色。 连续三个或更多相同的字符,例如
zzz熵乘以0.75。 - 序列。 任何三个字符均来自字母表、数字或键盘行
qwertyuiop、asdfghjkl並zxcvbnm向前或向后,熵乘以 0.75。
当密码短于 8 个字符、仅使用一种类型的字符或仅使用数字时,它还会在不更改数字的情况下发出警告。
检查员对真实密码有何评价?
以下是工具报告的一组人们常用或建议使用的密码。破解时间使用检查器's两种攻击者模型。
| 密码 | 长度 | 调整熵 | 评级 | 离线破解时间 | 在线破解时间 | 提出警告 |
|---|---|---|---|---|---|---|
password |
8 | 8.0 位 | 很弱 | 瞬间 | 瞬间 | 通用密码;一种字符类型 |
qwerty123 |
9 | 6.0 位 | 很弱 | 瞬间 | 瞬间 | 通用密码;顺序 |
aaaaaaaaaaaa |
12绔 涔诲芥澶澧 | 8.3 位 | 很弱 | 瞬间 | 瞬间 | 重复图案;一种字符类型 |
4829 |
4锛屽湪娴欐睙鏉 | 13.3 位 | 很弱 | 瞬间 | 5秒 | 太短;仅限数字;一种类型 |
P@ssw0rd1 |
9 | 59.1 位 | 公平 | 12个月 | 几个世纪 | 没有 |
Summer2024! |
11绔 涔诲芥澶澧 | 72.3 位 | 坚强 | 几个世纪 | 几个世纪 | 没有 |
Tr0ub4dor&3 |
11绔 涔诲芥澶澧 | 72.3 位 | 坚强 | 几个世纪 | 几个世纪 | 没有 |
correct horse battery staple |
28绔 涔诲芥澶澧 | 164.7 位 | 很强 | 几个世纪 | 几个世纪 | 没有 |
其中一些可以手工检查。 qwerty123 matched 共同列表,将其封顶为 8 位,同时包含键盘运行和数字序列,因此 8 × 0.75 = 6.0。For 4829、池是10位,所以4 × 3.32 = 13.3位,平均猜测次数是空间的一半:2^13.3 / 2 = 5000,在1000猜测一秒,也就是在线5秒。
P@ssw0rd1 是有趣的行,它使用所有四种字符类型,所以9 × 6.57 = 59.1位,并且它不在公共列表中,因为列表包含 p@ssw0rd 没有尾数。检查器无法知道它是单词 "密码 ",破解工具首先尝试使用最可预测的替换。
破解时间估计假设什么?
这两个数字模拟了两个截然不同的攻击者,并且都从相同的数字开始:所需的平均猜测,即 2 的一半提高到熵。
| 模型 | 每秒猜测 | 代表 |
|---|---|---|
| 离线(快速) | 1万个 | GPU硬件上攻击的快速、无盐哈希的被盗数据库 |
| 线(节流) | 1千 | 猜测实时登录表单 |
离线数字是悲观的案例,计划是正确的,因为一旦网站's密码数据库泄露攻击者就不再受速率限制,100亿秒的真实程度完全取决于网站如何存储密码。故意缓慢的哈希(例如 bcrypt)会使攻击者's速率降低多个数量级,这是 bcrypt 生成器指南 详细解释,而像无盐 MD5 或 SHA-1 这样的快速哈希允许在此范围内的速率。 哈希生成器指南 涵盖了这些算法之间的差异。
显示屏的两个限制值得了解:
- 60位或更多时,检查器停止计算并显示"世纪"。 60位根据其自身的离线假设,平均2^59 / 10^10 = 约5800万秒,大约1.8年,而这个数字直到大约66位才达到一个世纪。将"世纪"在低60年代的密码上视为"年,而不是世纪"。
- 估计没有提及违规行为。 泄漏中出现的密码首先从泄漏列表中猜测,无论其熵如何。
为什么我的长密码仍然被评为弱?
因为长度只有在角色不可预测时才会有所帮助。检查器会降低攻击者首先尝试的模式的分数:重复的块,像这样的运行 1111的,像这样的序列 abcd 或 9876或者键盘走路 asdfgh。 abcabcabcabc 12个字符长,但它是一个三字母单元重复,并且包含一个字母顺序,因此检查器对其得分13.3位:小于来自完整95个字符池的随机3个字符密码,该密码值为19.7位。
反之亦然,更重要,有些密码得分好,弱,因为字符池公式无法识别:
- 字典单词、名称和带有字母的地点交换为相似的数字或符号,例如
Tr0ub4dor&3; - 一个季节或月份加上一年加上一个符号,例如
Summer2024!; - pet 之类的个人资料'姓名及出生年份;
- 根据名言或众所周知的示例构建的密码短语,包括
correct horse battery staple的,它来自 xkcd漫画936 现在出现在破解词表中。
Passphrase的诚实熵取决于单词是如何选择的,而不是它的字符,从2048个单词列表中随机选择的四个单词给出4×log2(2048) = 4×11 = 44位,六个这样的单词给出66位,这比字符公式报告低,但它是真实的,这就是为什么passphrase生成器选择随机过程的单词而不是让人们选择。
NIST对密码推荐什么?
美国国家标准与技术研究所制定了密码指导 NIST 特别出版物 800-63B、数字身份指南。其对检查密码的服务的建议与几个习惯相悖, 鼓励较老的强度计:
- 不要强加诸如"必须包含符号和大写字母"之类的组成规则。他们推动人们走向可预测的替代。
- 将新密码与已知受损、常见或预期的值列表进行比较,并拒绝匹配。
- 在没有妥协证据的情况下,请勿强制定期更改密码。
- 允许使用长密码,包括空格和所有可打印字符,因此密码短语有效。
当前的修订版 SP 800-63B-4 保留了这些原则,并提高了用作唯一身份验证因素的密码的最小长度。
选择密码的人的实用阅读:长度和随机性完成工作,密码管理器使随机密码可用,违规检查与强度计一样重要。 我被拥有了吗's 拥有密码 service 让您使用 k-匿名范围查询检查密码是否出现在已知的漏洞中,该查询仅发送密码的前五个字符's SHA-1 哈希而不是密码本身。
1个密码怎么查's实力,一步一步
- 打开 免费密码强度检查器 并将密码输入或粘贴到字段中。使用眼睛按钮显示或隐藏它。
- 读取评级、调整后的熵(以位为单位)和长度。
- 比较两次破解时间,记住"centuries"以 60 位开始。
- 看小写、大写、数字和符号的组成计数,非 ASCII 字符在此行中用符号计数。
- 阅读警告,其中列出了特定问题,例如序列或通用密码。
- 按照建议进行操作,并在输入时观看数字更新。当密码得分强或更好且没有警告时,建议会更改为提醒仅在一个地方使用它并将其存储在密码管理器中。
一个小怪癖:长度计算 UTF-16 代码单位,JavaScript 测量字符串的方式,因此大多数表情符号都算作两个字符。
将真实密码输入强度检查器安全吗?
有了这个检查器,分析完全发生在你的浏览器中,使用普通的 JavaScript。密码不会通过网络发送、记录或存储,并且页面会一直与断开连接的网络一起工作。该工具仅记录发生检查,而不记录检查的内容。
1般习惯还是健全的:不要把真实密码打到你不信任的站点,因为你看不到一个页面's代码对他们的作用,如果要测试密码的形状而不暴露真实的,就测试一个相同结构的密码,而不是:相同的长度,相同的字符,相同的单词。
如何使密码变得强大?
提高实际实力的方法,按影响顺序排列:
| 方法 | 示例熵 | 注释 |
|---|---|---|
| 来自管理器的随机密码,20 个字符,所有类型 | 131 位 | 每个网站都是独一无二的;没有什么值得记住的 |
| 随机密码,来自 7,776 个单词列表的 6 个单词 | 6×12.9=77.5位 | 易于输入;适合主密码 |
| 随机密码,12 个字符,所有类型 | 78.8 位 | 很难记住 |
| 人选词+替代词+年份 | 远低于其得分 | 在破解规则中出现 |
7,776字列表是一个标准骰子软件列表的大小,其中五个骰子卷选择每个单词,log2(7776) = 12.9位每个单词。
要创建随机密码, 密码生成器 使用浏览器绘制字符's Web 加密随机数源,以及 密码生成器指南 涵盖长度和字符集选择。 安全工具中心 列出了相关工具,包括 b加密生成器 为存储密码的开发人员。
这种强度检查器的替代品
- zxcvbn、发布的开源估计器 GitHub 上的 Dropbox的,将密码与字典、名称、日期和常见替换相匹配,并且更擅长捕捉
P@ssw0rd-样式密码。它是开发人员的库,而不是页面。 - 密码管理器审核 立即检查保存的密码,以了解您所有帐户的重用、弱点和已知违规行为。
- 违反检查 如pwned Passwords回答了一个不同的问题:不是密码在理论上的可猜测性,而是攻击者是否已经拥有它。
此检查器'的优势在于透明度和隐私:它显示熵、攻击者模型和确切的警告,并且密码永远不会离开您的设备。



