密码强度检测工具

0 个字符

生成密码

长度:16

GeekFormat 密码强度检测工具,基于Shannon信息熵科学评估密码安全性。输入密码即时显示5级星级强度评级、熵值(bits)、三种场景破解时间预估(普通PC/超级计算机/在线限速攻击),逐项检测7项安全指标(长度、大小写字母、数字、特殊字符、重复模式、连续序列、常见弱密码库匹配),并给出个性化改进建议。内置加密安全随机密码生成器(crypto.getRandomValues),支持8-64位长度和自定义字符集。纯浏览器本地处理,密码不上传服务器。

相关推荐

关于密码强度与安全

密码强度(Password Strength)是衡量一个密码抵抗暴力破解和字典攻击能力的度量。强密码应具有足够的长度、足够大的字符集(多种字符类型混合)、足够的随机性(无规律、不可预测),且不在已泄露的密码列表中。密码是数字身份认证最基础也是最广泛使用的手段,从邮箱、社交账号到网银、加密钱包,几乎所有在线服务都依赖密码保护。弱密码是数据泄露和账号被盗的首要原因——Verizon DBIR(数据泄露调查报告)多年统计显示,超过80%的数据泄露事件与弱密码或密码泄露有关。

Shannon信息熵(Shannon Entropy)是衡量密码强度的科学指标,由信息论之父Claude Shannon于1948年提出。密码学中,熵的单位是比特(bit),表示暴力破解该密码平均需要尝试的次数的对数(以2为底)。例如,40 bits熵意味着攻击者平均需要尝试2⁴⁰≈1万亿次组合;80 bits熵需要2⁸⁰≈1万亿万亿次;128 bits熵在可预见的未来内不可暴力破解。需要注意的是,Shannon熵假设密码字符是完全随机的,如果密码有规律(如单词+数字后缀),实际有效熵会低于理论值。

暴力破解(Brute-force Attack)是最直接的密码攻击方式:逐一尝试所有可能的字符组合,直到找到正确的密码。暴力破解的速度取决于两个因素:计算能力(每秒能尝试多少次)和密码熵值(需要尝试多少次才能命中)。随着GPU并行计算能力的提升,暴力破解速度增长极快——2020年代的高端显卡每秒可尝试数百亿次密码哈希。但当密码熵值足够高(如100 bits以上),即使将全球所有计算资源聚合起来,在宇宙年龄内也无法完成穷举。因此,对抗暴力破解最有效的方法就是使用高熵的长随机密码。

字典攻击(Dictionary Attack)是比暴力破解更高效的攻击方式:攻击者不尝试所有组合,而是使用包含常见密码、泄露密码、单词列表、常见模式组合的"字典"进行尝试。大多数用户选择的密码不是完全随机的——研究显示超过50%的用户使用Top 1000常见密码的变体。字典攻击比暴力破解快几个数量级,因为它只需要尝试最可能的候选。常见密码库(如rockyou泄露的1400万密码、Have I Been Pwned的Pwned Passwords数据库)记录了数十亿个已在互联网上泄露过的密码,任何出现在这些列表中的密码都应视为不安全。

密码破解时间的估算需要考虑攻击场景。在线攻击(通过网站登录接口尝试)通常受到严格限速——服务器会限制尝试频率、在多次失败后锁定账户、要求验证码,因此速度最慢(每秒数次到数百次)。离线攻击(攻击者获取了密码哈希数据库后在本地破解)速度极快——使用高端GPU集群每秒可尝试数千亿次,使用云计算或超级计算机可达到每秒万亿次甚至千万亿次。此外,不同哈希算法的破解速度差异巨大:MD5和NTHash非常快,bcrypt/Argon2等慢哈希算法专为抵抗暴力破解设计,速度慢数百万倍。

NIST(美国国家标准与技术研究院)在SP 800-63B指南中对密码策略提出了现代建议:1)密码长度至少8位,建议使用更长的密码(密码短语/passphrase);2)支持所有ASCII字符和Unicode字符(包括空格);3)不再强制要求定期更换密码(仅在有证据表明泄露时更换);4)不再强制要求特定字符组合规则(但建议使用多种类型);5)禁止使用已知泄露的密码;6)提供密码强度反馈。这些建议的核心是:密码的真正强度来自长度和随机性,而非复杂的组成规则;长度比复杂度更重要。

密码短语(Passphrase)是一种平衡安全性和可记忆性的密码策略:使用4-6个随机选择的单词(如正确horse电池订书钉/correct horse battery staple)组合,通过单词的数量而非字符复杂度获得高熵。一个5个随机英文单词的密码短语熵值约65-70 bits(假设从7776个常用单词中随机选取),相当于10-11位完全随机的ASCII字符,但更容易记忆。但需要注意:密码短语中的单词必须随机选择,使用有意义的句子或常见短语(如iloveyou、tobeornottobe)安全性会大幅降低。

密码安全的最佳实践:第一,使用密码管理器(如Bitwarden、KeePassXC、1Password等)为每个网站生成并存储唯一的强随机密码(16位以上全字符类型),避免重复使用密码;第二,尽可能开启双因素认证(2FA/TOTP/安全密钥),即使密码泄露也能保护账户;第三,定期检查邮箱是否在数据泄露中出现过(通过Have I Been Pwned等服务);第四,谨慎对待钓鱼邮件和仿冒网站,这是窃取密码最常见的方式;第五,重要账户(邮箱、网银、加密钱包)使用额外强保护,避免在公共WiFi下登录敏感账户;第六,密码安全是一个系统工程,强密码只是第一道防线。

适用场景

  • 注册新网站账号前先检测密码强度,避免使用弱密码导致账号被盗
  • 定期修改密码时评估新密码的安全性,确认新密码比旧密码强度更高
  • 企业IT部门制定团队密码策略时,作为密码复杂度要求的参考检测工具
  • 开发用户注册/改密功能时,参考检测标准设计前端密码强度提示
  • 排查账号安全事件时,检测现有密码是否属于常见弱密码、破解时间是否过短
  • 为不同安全等级的账户生成对应强度的密码——邮箱网银用极强密码、论坛用中等密码
  • 向非技术人员解释为什么"看起来长"的密码(如password123)其实不安全,用破解时间直观展示风险
  • 密码管理器生成密码后,二次验证其熵值和强度等级是否达标
  • 学习密码安全知识时,通过调整字符组合观察熵值和破解时间的变化关系
  • 对比不同密码策略的效果——如8位纯数字 vs 8位混合字符 vs 16位混合字符的破解时间差异
  • 安全培训演示中展示弱密码的脆弱性,输入常见密码展示其即时被破解的风险
  • 设置Wi-Fi密码、数据库密码、加密密钥等高安全场景时确认密码达到★★★★级别以上

使用方法

  1. 在密码输入框中输入要检测的密码,可点击眼睛图标切换明文/密文显示以便核对
  2. 工具实时分析密码,显示5级星级强度评级、Shannon熵值(bits)、三种场景破解时间
  3. 查看字符集检测表,确认7项安全指标(长度、大小写、数字、特殊字符、无重复、非常见密码)是否通过
  4. 根据改进建议区的提示优化密码——如增加长度、补充缺失的字符类型、避免常见密码
  5. 如需生成强密码,设置长度(8-64位)和字符类型选项,点击生成按钮获得加密安全随机密码

功能特点

  • Shannon信息熵算法:基于密码字符集大小和长度计算Shannon熵值(bits),科学量化密码随机性强度,而非简单规则打分
  • 5级星级强度评定:从☆☆☆☆☆(极弱)到★★★★★(极强)共5个等级,根据熵值区间(<30/30-45/45-60/60-80/>80 bits)和安全检查结果综合判定
  • 三种场景破解时间预估:分别估算普通PC(10亿次/秒)、超级计算机(1000万亿次/秒)、在线限速攻击(100次/秒)三种场景下的暴力破解时间,覆盖从毫秒到数万亿年的时间范围
  • 7项安全指标逐项检测:自动检测密码是否满足≥8位长度、包含大写字母、包含小写字母、包含数字、包含特殊字符、无连续重复字符(如aaa/111)、无连续数字序列(如123/456)、不在常见弱密码库中
  • 常见弱密码库检测:内置常见弱密码列表,输入123456、password、qwerty等经典弱密码时立即红色警告,这些密码在彩虹表攻击下瞬间被破解
  • 动态改进建议:根据检测结果实时给出个性化改进建议——缺大写提示加大写、长度不足建议加长、命中常见密码提示更换,精准指导用户提升密码强度
  • 内置安全密码生成器:使用浏览器crypto.getRandomValues()加密安全随机数生成密码,长度8-64位可调,可自由选择是否包含大写、小写、数字、特殊字符(!@#$%^&*-_+=?)
  • 密码显示/隐藏切换:一键切换密码明文/密文显示,方便核对输入内容,避免因看错字符导致密码设置错误
  • 实时字符计数:输入框下方实时显示当前密码字符数,方便评估长度是否达标
  • 即时分析无延迟:输入密码时即时分析,无需点击按钮,修改即时反馈强度变化
  • 检测结果一键复制:支持一键复制强度等级、熵值、三种破解时间的完整摘要文本,方便记录或分享
  • 国际化数字格式:破解时间数字根据用户语言环境自动本地化格式化(千分位分隔符等)
  • 清空功能:一键清空输入框重新检测,操作便捷
  • 纯浏览器本地处理:密码分析和生成都在浏览器JavaScript中完成,输入的密码不会通过网络发送到任何服务器,密码安全有保障

常见问题

密码强度检测的原理是什么?Shannon熵值怎么算?

本工具基于Claude Shannon提出的信息熵理论量化密码强度。熵值计算公式为:熵 = 密码长度 × log₂(字符池大小)。字符池大小根据密码使用的字符种类累加:小写字母26个、大写字母26个、数字10个、特殊字符33个(!@#$%^&*-_+=?等)。例如,仅使用小写字母的8位密码,字符池=26,熵=8×log₂(26)≈37.6 bits;而使用全部四类字符的16位密码,字符池=95,熵=16×log₂(95)≈105 bits。熵值越高,暴力破解需要尝试的组合数越多,密码越安全。

为什么123456、password这类密码很长却被评为极弱?

因为密码强度不仅取决于长度,更取决于随机性和不可预测性。123456虽然有6位,但它是最常见的密码之一,存在于每一个彩虹表和密码字典中,黑客破解时会优先尝试这些高频密码,实际上几秒内就能猜中。本工具内置常见弱密码库,检测到密码在常见密码列表中直接判定为极弱(☆☆☆☆☆),无论长度多少。类似的弱密码还包括:qwerty、abc123、admin、letmein、welcome、monkey、dragon等。

破解时间预估中的三种场景有什么区别?

三种场景模拟了不同攻击能力的破解速度:1)在线限速攻击(100次/秒):模拟网站登录接口,服务器通常限制尝试频率(如每账户每秒最多尝试几次,5次失败锁定),这是最常见的远程攻击场景,速度最慢;2)普通PC离线攻击(10亿次/秒):攻击者获取了密码哈希值后在本地用显卡暴力破解,现代GPU每秒可尝试数十亿次;3)超级计算机/分布式攻击(1000万亿次/秒):国家级攻击者或大型僵尸网络,拥有极强的并行计算能力。你的密码需要在超级计算机场景下也能抵抗足够长时间才算真正安全。

多少位密码才算安全?推荐的密码策略是什么?

安全级别因场景而异:1)普通论坛/非重要账户:≥12位混合字符,熵≥60 bits(★★★☆☆),在超级计算机下需数年;2)邮箱/社交账号:≥14位混合字符,熵≥80 bits(★★★★☆);3)网银/加密钱包/管理员账户:≥16位全字符类型,熵≥100 bits(★★★★★),超级计算机破解需数万亿年以上。通用建议:使用密码管理器生成16位以上包含大小写+数字+特殊字符的随机密码,每个网站使用唯一密码,开启双因素认证(2FA)。

为什么有大写+小写+数字+特殊字符还是被提示不够强?

可能有几个原因:1)长度不够——即使四类字符都有,如果只有8位,熵值约52 bits,在超级计算机下仍然可能被较快破解;2)有重复模式——如AAAbbb123!!!中包含连续重复字符,工具会检测到并扣分;3)有连续数字——如abc123!中的123是连续序列;4)整体结构有规律——如Password1!虽然满足四类字符要求,但Password是常见单词加首字母大写和数字/符号后缀,容易被字典攻击命中。建议长度至少12位以上,并让字符排列尽可能随机。

输入的密码会被上传到服务器吗?安全吗?

完全不会。本工具的所有密码分析计算都在你浏览器的JavaScript中本地完成,密码输入后不会通过网络发送到任何外部服务器。页面使用浏览器端的crypto.getRandomValues() API生成随机密码(这是浏览器提供的密码学安全随机数接口),不依赖服务器。你可以在断网状态下使用本工具,功能完全正常。关闭或刷新页面后,输入的密码自动清除,不会在浏览器中持久化保存。

为什么密码看起来很随机但检测结果显示不在常见密码库?这怎么判断的?

工具内置了一个常见弱密码数据集(commonPasswords),包含了历史数据泄露中出现频率最高的数千个密码(如rockyou等泄露事件中统计的高频密码)。如果你的密码不在这个列表中,说明它不是那些被广泛使用的弱密码。但需要注意:不在常见密码库中不等于绝对安全——如果密码包含个人信息(姓名拼音、生日、手机号)、键盘路径(asdfgh)、或有语义的单词组合,仍可能被针对性的字典攻击破解。最安全的密码是完全随机生成的字符序列。

密码生成器使用的随机数安全吗?

安全。密码生成器使用浏览器提供的crypto.getRandomValues()接口,这是Web Cryptography API提供的密码学安全伪随机数生成器(CSPRNG),其随机数质量远高于Math.random()。crypto.getRandomValues()的随机数熵来源于操作系统的熵池(如键盘敲击间隔、鼠标移动、磁盘IO时间等物理随机源),不可预测且不可重现,适合用于生成密码、密钥等安全敏感数据。生成的密码字符从你选择的字符集中均匀随机抽取。

为什么相同密码在不同工具上的强度评级可能不同?

不同密码强度检测工具使用的算法和阈值不同,评级结果可能有差异。常见差异包括:1)熵值计算方式不同——有些工具简单按字符类数计算,有些进行更精确的模式分析;2)常见密码库大小不同——库越全,能识别的弱密码越多;3)强度等级阈值不同——多少bits算"强"没有统一标准;4)是否检测键盘模式(qwerty、qazwsx)、日期格式、重复字符等模式。本工具采用Shannon熵+7项规则检查的组合方式,并针对常见弱密码做专门检测,评级参考了业界通行标准(NIST、OWASP建议)。

特殊字符包含哪些?为什么不支持更多特殊字符?

本工具的特殊字符集为!@#$%^&*-_+=?(共14个),密码生成器也使用这个字符集。这是因为很多网站对密码中允许的特殊字符有限制——例如单引号、双引号、反斜杠、空格、尖括号等在SQL、HTML、命令行中有特殊含义,可能导致注入问题或被网站拒绝。选择最常用且最被广泛接受的特殊字符,可以确保生成的密码在绝大多数网站上可用。如果你在手动输入密码时使用其他特殊字符(如%、~、|、{}[]等),工具仍会将其识别为特殊字符并计入字符池。

定期更换密码能提高安全性吗?

根据NIST(美国国家标准与技术研究院)SP 800-63B最新指南,定期强制更换密码(如每90天)的安全收益有限,反而可能导致用户选择弱密码或在旧密码基础上做微小改动(如password1→password2)。更好的策略是:1)使用足够强的长随机密码(16位以上);2)每个账户使用唯一密码(通过密码管理器管理);3)开启双因素认证(2FA);4)在得知数据泄露事件后立即更换相关密码;5)发现异常登录时立即更换密码。本工具可以帮助你判断现有密码强度是否需要升级。

密码管理器生成的密码还需要用这个工具检测吗?

一般不需要,主流密码管理器(1Password、Bitwarden、KeePass、LastPass等)生成的密码默认使用加密安全随机数和全字符集,长度通常12-20位以上,强度一般在★★★★以上。但如果你自定义了密码管理器的生成规则(如排除特殊字符、缩短长度),可以用本工具验证其熵值和破解时间是否满足你的安全需求。此外,如果你不确定密码管理器的随机数实现是否可靠,二次验证也是一个好习惯。

为什么连续数字或连续重复字符会降低密码安全性?

因为暴力破解工具和字典攻击不仅会尝试常见密码,还会针对常见模式生成候选密码。连续数字(123、456、789、012)和连续重复字符(aaa、111、!!!)是非常高频的模式,出现在大量密码中。密码破解工具的规则引擎会专门生成这类变体(如在单词后加123、!!!、2024等年份数字),包含这些模式的密码相当于减少了有效熵——攻击者不需要暴力搜索所有组合,只需尝试常见模式就能命中。

中文密码或全角字符的密码安全吗?

大多数网站和系统不支持中文或全角字符作为密码,因为编码处理容易产生兼容性问题。本工具将任何非字母数字的字符都计为特殊字符,但实际中如果你使用中文密码,可能遇到无法登录、跨平台乱码等问题。建议使用ASCII字符集(英文大小写、数字、半角符号)组成的密码,这是兼容性最好的方案。如果系统支持Unicode密码(如某些Linux系统),Unicode密码的字符池更大,但需要确保所有终端都能正确输入。

什么是彩虹表攻击?和暴力破解有什么区别?

暴力破解是逐个尝试所有可能的字符组合;而彩虹表攻击是预先计算好常见密码及其哈希值的对照表(彩虹表),攻击时直接查表而非逐次计算,速度极快。如果用户使用常见密码,即使哈希算法很强(如SHA-256),攻击者通过彩虹表可以在几秒内反查出原始密码。防范彩虹表攻击的方法包括:1)使用足够随机的长密码(不在彩虹表覆盖范围内);2)系统使用加盐哈希(如bcrypt、scrypt、Argon2),使预计算的彩虹表失效。本工具检测常见密码库就是帮助用户避免选择已被彩虹表覆盖的密码。

故障排查

为什么输入密码后没有显示分析结果?

分析结果在输入密码后实时显示。如果输入密码后没有看到结果区域,请确认:1)你输入了密码(空输入框不显示结果);2)页面已完全加载(JavaScript已启用且无报错)。如果仍然无响应,尝试刷新页面。密码分析完全在本地浏览器中进行,不依赖网络请求,刷新不会丢失输入但会清空内容。

生成密码按钮点击后没有反应?

生成密码按钮需要至少选择一种字符类型(大写/小写/数字/符号中的至少一项)。如果所有选项都未勾选,无法生成密码,默认会使用小写字母+数字作为后备。建议保持大写、小写、数字、符号四个选项都勾选以生成最强密码。长度滑块范围为8-64位。生成的密码会自动填入输入框并即时分析。

密码显示/隐藏按钮不工作?

眼睛图标按钮用于切换密码输入框的type属性在password和text之间切换。如果点击后没有切换,可能是浏览器JavaScript异常,尝试刷新页面。注意:在password模式下输入的字符显示为圆点(•••),text模式下显示明文。在公共场合或屏幕录制时建议使用password模式。

我的密码明明很复杂为什么评级不高?

检查以下常见问题:1)长度是否不足?12位以下即使全字符混合在超级计算机下仍可能较快破解,建议至少14位;2)是否包含重复序列?如AAA111!!!包含连续重复字符;3)是否是常见单词加后缀?如Password123!或Qwerty@2024虽然满足四种字符,但核心是常见词+规律后缀;4)是否是键盘路径?如Qazwsx123!是键盘上的Z字形路径,这类模式会被破解工具优先尝试。建议使用密码生成器生成完全随机的密码。

术语表

Shannon Entropy(香农熵)
由Claude Shannon提出的信息论概念,用于衡量密码的随机性强度,单位为比特(bit)。熵值=密码长度×log₂(字符池大小)。熵值越高,暴力破解所需尝试的组合数越多。
Character Pool(字符池)
密码中使用的所有可能字符的集合大小。小写字母26个、大写字母26个、数字10个、特殊字符约33个。使用的字符类型越多,字符池越大,每增加一位字符带来的熵增益越多。
Brute-force Attack(暴力破解)
通过系统地尝试所有可能的字符组合来猜测密码的攻击方式。破解时间取决于密码熵值和攻击者的计算能力,高熵密码可以使暴力破解在计算上不可行。
Dictionary Attack(字典攻击)
使用包含常见密码、泄露密码、单词和常见模式的预编译列表进行密码猜测的攻击方式,效率远高于纯暴力破解,是现实中最常见的密码攻击手段。
Rainbow Table(彩虹表)
预先计算的密码哈希值对照表,用于在获取哈希值后快速反查原始密码。使用加盐哈希(salted hash)和慢哈希算法(bcrypt/Argon2)可有效防御彩虹表攻击。
CSPRNG(密码学安全伪随机数生成器)
Cryptographically Secure Pseudo-Random Number Generator,输出不可预测、不可重现的随机数生成器。本工具使用浏览器crypto.getRandomValues()这一CSPRNG接口生成密码。
Common Password(常见弱密码)
在多次数据泄露事件中高频出现的密码(如123456、password、qwerty、admin等)。这些密码存在于每一本破解字典中,应彻底避免使用。
2FA/MFA(双因素/多因素认证)
Two-Factor/Multi-Factor Authentication,除密码外还需要第二种验证因素(如手机验证码、TOTP、硬件安全密钥),即使密码泄露也能保护账户安全。
Passphrase(密码短语)
由多个随机单词组成的长密码,通过单词数量获得高熵值,同时比随机字符串更容易记忆。例如"正确horse电池订书钉"式的4词随机组合。
Password Hash(密码哈希)
使用单向哈希函数将密码转换为不可逆的固定长度字符串存储。验证时比对哈希值而非明文,即使数据库泄露也不直接暴露密码。应使用bcrypt/Argon2等慢哈希算法。
Salt(盐值)
在哈希计算前附加到密码上的随机字符串,使相同密码产生不同哈希值,防止彩虹表攻击和批量破解。每个密码应有唯一的盐值。
crypto.getRandomValues()
Web Cryptography API提供的密码学安全随机数生成接口,由浏览器实现,随机源来自操作系统熵池,远优于Math.random(),适合生成密码和密钥。

密码熵值与破解时间参考

在超级计算机攻击场景(1000万亿次/秒)下,不同熵值密码的破解难度参考:

熵值(bits)典型组合PC破解时间超算破解时间强度评级
< 306位纯数字、常见单词< 1秒瞬间☆☆☆☆☆ 极弱
30-458位纯小写字母数秒-数小时< 1秒★☆☆☆☆ 弱
45-608位大小写+数字数天-数年数秒-数分钟★★☆☆☆ 一般
60-8010位全字符混合数十年-数千年数小时-数天★★★☆☆ 良好
80-10014位全字符混合数百年以上数年-数百年★★★★☆ 强
> 10016位全字符随机不可行万亿年以上★★★★★ 极强

不同字符类型组合的熵值对比

12位密码使用不同字符组合时的理论熵值和安全性差异:

字符组合字符池12位熵值组合数量级安全评价
纯数字(0-9)10~40 bits10¹²极弱,秒破
纯小写字母26~56 bits10¹⁷弱,分钟级破解
大小写字母52~68 bits10²⁰一般,小时级破解
大小写+数字62~71 bits10²¹良好,天级破解
大小写+数字+符号95~79 bits10²³强,年级破解
全字符16位随机95~105 bits10³¹极强,不可暴力破解

7项安全检查指标说明

工具逐项检测的7项密码安全指标:

检查项通过标准不通过风险
长度≥8位密码长度至少8个字符过短密码暴力破解空间小
包含大写字母包含A-Z至少一个字符池缩小26,熵降低
包含小写字母包含a-z至少一个字符池缩小26,熵降低
包含数字包含0-9至少一个字符池缩小10,熵降低
包含特殊字符包含非字母数字符号字符池缩小约33,熵降低
无重复/连续模式无3个以上相同字符或连续数字模式化密码易被规则攻击命中
不在常见密码库不在已知弱密码列表中常见密码在字典中秒破

Privacy & Security

本密码强度检测工具所有操作完全在你的浏览器本地完成:你输入的密码仅在浏览器JavaScript中进行熵值计算和安全分析,不会通过网络发送到任何外部服务器。密码生成器使用浏览器内置的crypto.getRandomValues()接口在本地生成随机密码,不依赖服务器。页面不使用Cookie追踪,不收集用户输入的密码或任何使用数据。关闭或刷新页面后,输入的密码和分析结果自动清除,不会在浏览器中持久化存储。你可以在断网状态下使用本工具,所有功能正常可用。

Authoritative References