密码强度检查器
分析您的密码强度,并获得如何改进密码的反馈。
关于 密码强度检查器
评估您的账户密码在真实黑客攻击下的防御能力。利用先进的数据熵评估模型,我们的工具能计算出各种破解场景下的预估耗时,并为您提供科学的密码库构建建议。
如何使用
- 在输入框中输入您想要测试的密码字符串。
- 实时观察“强度彩条”的变动,通过颜色直观判断安全性。
- 查阅不同破解环境下的预计时间(如离线快速哈希)。
- 阅读下方的“安全提示”以学习如何创建更坚固的凭证。
常见使用场景
- 在创建重要的银行或社交账户前,测试拟定密码的可靠性。
- 验证旧密码是否还符合现代安全标准(抵御暴力破解)。
- 向非技术用户演示随机单词短语相比随机字符的优越性。
技术细节
基于 zxcvbn 算法框架,模拟真实入侵者的字典攻击、模式匹配(拼音、连号、日期)来评估其抗风险能力。
常见问题
- 输入在这里安全吗?
- 绝对安全。该工具是 100% 离线的,您的输入内容仅在内存中进行数学运算,绝不会上传。我们建议您在断开网络的情况下进行测试以求极致安心。
- 什么是“破解时间预计”?
- 这反映了黑客通过自动化软件每秒尝试数亿次时,找到您的密码平均需要的时长。单位可能是毫秒,也可能是数个世纪。
- 什么使密码强度高?
- 关键因素包括:长度(每增加一个字符使破解时间呈指数增长)、字符多样性(混合使用大写、小写、数字和符号)、随机性(避免字典词、键盘模式和个人信息)。16 个字符以上的随机密码对于普通用途实际上无法破解。
- 此工具如何估算密码破解时间?
- 该工具分析密码的熵(基于字符集大小和密码长度)和常见模式(字典词、重复、键盘序列)。破解时间估算基于标准攻击场景,假设使用现代 GPU 进行暴力破解——这是密码哈希泄露时的实际威胁模型。
- 此工具是否将我的密码发送到服务器?
- 不会。密码强度检查完全在您的浏览器中进行,没有任何数据传输到服务器。没有日志,没有记录,您的密码永远不会离开您的设备。
- 密码强度检测器是否离线工作,测试真实密码是否安全?
- 是的,密码强度检测器完全在你的浏览器中运行——你的密码不会发送到任何服务器。你可以断开网络连接后测试该工具来验证这一点;它仍然可以正常工作。强度分析使用zxcvbn算法,该算法会检查字典词汇、常见模式、键盘序列以及替换字符(如用@替代a)。尽管使用起来是安全的,对于你最敏感的密码,最佳做法仍是只测试相似但非完全相同的字符串。
本地处理
本地文件、文本和图表工具通过 JavaScript、浏览器 API 以及必要时使用的 WebAssembly 在您的设备上处理内容。使用事件不包含文件名、文件内容、输入文本、图表数值、原始错误、电子邮箱或许可证引用。DNS、WHOIS、IP 和测速等网络工具会为其功能访问外部服务。加载网站、字体、库和模型也会产生网络请求。WebAssembly 本身并不能阻止网络访问。
如何真正衡量密码强度(而不是被正则表达式骗过)
大多数密码强度计都是错的。它们奖励复杂度表演——大写字母、符号、数字——却忽略了真正重要的指标:熵,即攻击者需要猜测多少次才能破解密码。像 zxcvbn 这样的本地算法估算器能给出诚实的答案,且从不将密码发送到服务器。
我们都经历过这一幕。注册新服务时,迎面而来一张清单:必须包含 8 个字符、一个大写字母、一个数字和一个特殊字符。 你尽职尽责地将"password"改成"P@ssword1!",小红叉变成了绿色对勾。
系统满意了。你"安全"了。
但你并没有。 那个密码是历史上最常见的泄露字符串之一。现代 GPU 破解设备不到一秒就能猜出它。
问题在于大多数网站使用**正则表达式(Regex)**来验证密码。Regex 擅长检查字符串_看起来像_密码,但在衡量密码_实际有多强_方面历来表现糟糕。
在 LokalTools,我们采取了不同的做法。在构建密码强度计时,我们完全抛弃了"字符清单"模型。取而代之的是,我们实现了 zxcvbn——一个重量级的算法熵估算器,并且完全在你的浏览器中运行,确保你的潜在密码永远不会触碰服务器。
为什么标准密码要求如此无效?
大多数开发者使用简单的模式匹配(Regex),因为这很容易编写。它检查字符类型的_存在_。但黑客并不是逐字符猜密码——他们使用字典、常见替换模式(leetspeak)和已知数据泄露库。
来比较这两个密码:
- Tr0ub4dor&3(11 个字符,满足所有标准要求)
- correcthorsebatterystaple(25 个字符,全小写,无数字)
标准 Regex 验证器会将第一个标记为"强",第二个标记为"弱"(缺少符号和数字)。实际上,第一个是"可猜测的复杂度"的典型案例,而第二个——因 XKCD 漫画而广为人知——由于其高熵,需要数百年才能破解。
密码熵是不可预测性的度量:熵越高,攻击者通过暴力破解或字典攻击猜中密码所需的次数就越多。
什么是 zxcvbn?它如何衡量密码强度?
zxcvbn 是 Dropbox 的安全研究人员开发的密码强度估算器,以标准 QWERTY 键盘最底行命名。它被设计为模拟真实破解者攻击密码的方式——而非规则制定者对密码的思考方式。
zxcvbn 不是检查"是否有大写字母",而是使用:
- 字典匹配: 检查 3 万个常见英文单词、姓氏和美国热门城市名。
- 模式识别: 识别序列(abcde、12345)、重复(aaa)和键盘模式(qwerty、asdfgh)。
- L33t Speak 检测: 识别"P4ssw0rd"只是带有常见替换的"Password"。
- 熵计算: 基于暴力攻击需要多少次猜测才能找到匹配项,计算"熵的比特数"。
通过使用这个库,我们可以给你一个基于现实的"破解时间"估算,而不仅仅是一份任意规则清单。
我们如何解决性能问题?
将 zxcvbn 集成到 LokalTools 套件时,我们立刻遇到了一个障碍:字典体积问题。
为了有效工作,zxcvbn 需要那些包含常见词汇和名称的庞大字典。在标准形式下,该库有几兆字节大小。虽然在 4K 视频时代这听起来不多,但在 Web 性能领域,一个 2MB 的 JavaScript 负载是严重错误。它会减慢页面加载速度,消耗移动数据流量。
陷阱所在: 如果我们使用"精简版"库来节省文件大小,强度计的准确性会大幅下降。它会停止识别常见姓氏或流行文化引用,使工具的权威性降低。
解决方案: 我们实现了两阶段加载策略。
- 我们提供 Brotli 高度压缩编码的 zxcvbn-ts 库版本。
- 我们将实际的"思考"工作交给 Web Worker。
就像我们的视频转换工具一样,如果你输入得很快,密码估算可能会消耗大量 CPU。通过将逻辑放入 Web Worker,浏览器的主线程可以自由处理 UI。当你输入时,Worker 会发回评分和"破解时间"建议,输入框完全不会出现延迟。
在我们的测试中,这种方式将感知延迟降低到中端移动硬件上 50ms 以内。
为什么永远不应该将密码发送到服务器进行强度检测?
你可能会问:"为什么不直接把密码发送到强大的服务器去检测?"
从安全角度来看,这是灾难性的。
如果你正在测试银行账户或主要邮箱的新高安全性密码,你绝不应该在会将数据发送到服务器的网站上输入它。 即使该网站声称"不保存",你仍然在通过网线传输这个敏感字符串。你在信任他们的 SSL 配置、日志设置和内部员工。
通过 WebAssembly 和 JavaScript 在本地运行 zxcvbn,LokalTools 确保你的密码永远不会离开 RAM。
- 无需上传文件: 工具加载后,你可以关掉 Wi-Fi,它仍然能完美工作。
- 隐私设计: 我们这边没有数据库。我们不需要你的密码。我们不会泄露从未拥有的东西。
本地密码检测是否总是优于云端?
我们相信透明度。本地算法检测是_估算_强度的黄金标准,但它有一个盲点:实时泄露检测。
"Have I Been Pwned"等服务会检查你的密码是否出现在数十亿条泄露凭证的真实数据库中。要完美地做到这一点,你需要一个数 TB 级别的数据库——这是浏览器无法运行的。
云端胜出的场景: 如果你想知道你的特定密码是否出现在 2021 年 LinkedIn 泄露事件中,基于云端的查询(使用 k-Anonymity 保护隐私)是唯一的方式。
LokalTools 胜出的场景: 如果你正在_创建_新密码并希望确保它在数学上足够健壮、能抵抗暴力攻击,我们的本地 zxcvbn 实现比"要求包含 1 个数字"的清单更快、更私密、更有帮助。
构建真正强密码的技巧
基于 zxcvbn 引擎给我们的反馈,以下是你实际上应该如何构建凭证:
- 长度优先于复杂度: 一个 20 个字符的句子几乎总是强于一个 8 个字符的乱码字符串。
- 避免"四大件": 不要使用你的名字、生日、宠物名字或城市名。zxcvbn 的字典会立刻识别出来。
- 使用密语(Passphrase): 选择四个随机且不相关的词。"stapler-bridge-puddle-galaxy"对你来说容易记忆,对计算机来说却无法猜测。
立即体验
别再猜测你的密码是否安全了。不要相信那个只统计你按了多少次 Shift 键的简单"低/中/高"进度条。
前往 LokalTools 密码强度检测器,输入你最喜欢的密语的几个变体,查看实时的"破解时间"。100% 私密,完全在你的机器上运行,并提供真正能保护你安全的反馈。
常见问题
什么是密码熵? 密码熵是衡量密码不可预测性的数学指标,以比特表示。熵越高,攻击者通过暴力破解需要猜测的次数就越多。40 比特熵的密码需要约 1 万亿次猜测;60 比特需要超过 100 亿亿次。
什么是 zxcvbn? zxcvbn 是 Dropbox 开发的开源密码强度估算器。它通过模拟真实破解技术来评估密码:字典攻击、键盘模式匹配、L33t-speak 替换检测和序列识别。它返回 0 到 4 的评分和实际的破解时间估算。
为什么"P@ssword1!"被认为是弱密码? "P@ssword1!"满足大多数基于 Regex 的密码要求,但 zxcvbn 将其识别为使用常见替换的"password"一词的微小变体。它出现在大多数破解字典中,GPU 破解设备不到一秒就能猜到。
在强度检测器中输入真实密码安全吗? 只有当检测器完全在浏览器本地运行且无网络请求时才安全。LokalTools 的密码检测器使用 JavaScript 和 WebAssembly 在你的设备上处理一切。加载后可离线工作,不传输任何内容。作为一般原则,永远不要在会发起服务器请求的任何工具中输入真实的生产密码。
zxcvbn 与标准密码强度计有何不同? 标准强度计检查字符类型的存在(大写、数字、符号)。zxcvbn 模拟攻击者:检查你的密码是否匹配常见词汇、名字、日期、模式和已知替换。它衡量攻击需要多少次猜测,而不是你满足了多少字符类型规则。
为什么密语比复杂密码更强? 长度是密码强度的主导因素。像"stapler-bridge-puddle-galaxy"这样的四词密语有 25 个字符,不可预测性很高。像"Tr0ub4d0r!"这样的 8 个字符"复杂"密码可能的组合数量少得多,且通常遵循破解者会优先尝试的可预测替换模式。
zxcvbn 能检测我的密码是否出现在数据泄露中吗? 不能。zxcvbn 估算数学强度——它不检查泄露数据库。对于泄露检测,"Have I Been Pwned"等服务使用 k-Anonymity 允许你在不暴露完整密码的情况下进行检测。两者结合使用:用 zxcvbn 衡量强度,用泄露检测确认密码尚未被曝光。