无需登录 数据私有 本地保存

密码哈希在线验证器 - 识别 bcrypt/argon2 等格式

20
0
0
0
哈希格式分析器

粘贴哈希值,自动识别算法类型与安全等级

在上方输入哈希值,自动识别格式
密码验证器

验证明文密码是否与哈希值匹配

快速哈希生成

生成同一密码的多种哈希值,用于对比学习

安全等级速查
  高安全 bcrypt, argon2, PBKDF2
  中等 SHA-256, SHA-512, SHA-384
  已过时 MD5, SHA-1, NTLM
常见哈希格式特征参考

快速识别哈希类型的关键特征

算法 前缀/特征 长度 示例 安全性
bcrypt $2a$, $2b$, $2y$ 60字符 $2b$10$N9qo8uLOickgx2Z...
argon2id $argon2id$ 可变(~90+) $argon2id$v=19$m=65536... 最高
argon2i $argon2i$ 可变(~90+) $argon2i$v=19$m=65536...
SHA-512 无前缀(纯十六进制) 128字符 ddaf35a193617abacc...
SHA-256 无前缀(纯十六进制) 64字符 5e884898da280471...
SHA-1 无前缀(纯十六进制) 40字符 5baa61e4c9b93f3f...
MD5 无前缀(纯十六进制) 32字符 5d41402abc4b2a76... 极低
NTLM 无前缀(纯十六进制) 32字符 25f9e794323b4538...
SHA-512 Crypt $6$ ~100+字符 $6$rounds=5000$...
SHA-256 Crypt $5$ ~60+字符 $5$rounds=5000$...
PBKDF2-SHA256 pbkdf2:sha256: 可变 pbkdf2:sha256:600000$...
常见问题与知识点

了解密码哈希的核心概念,帮助您做出更好的安全决策

什么是 bcrypt?为什么推荐使用它?

bcrypt 是一种专为密码存储设计的哈希算法,基于 Blowfish 密码算法。它的核心优势在于内置盐值(salt)可调节的工作因子(cost factor),能有效抵御暴力破解和彩虹表攻击。每次哈希都会生成不同的盐值,即使相同密码也会产生不同结果。工作因子越高,计算越慢,攻击成本越大。目前推荐 cost 至少为 12。

bcrypt 的 $2a$、$2b$、$2y$ 前缀有什么区别?

$2a$ 是原始版本,存在一个与长密码相关的边界 bug;$2b$ 修复了该 bug,是目前的推荐标准;$2y$ 是某些系统(如 PHP)为前向兼容引入的别名。在大多数现代实现中,三者可以互换验证,但生成新哈希时应优先使用 $2b$

argon2 和 bcrypt 该选哪个?

argon2 是 2015 年密码哈希竞赛的获胜者,被广泛认为是目前最安全的密码哈希算法。它有三个变体:argon2d(抗GPU破解)、argon2i(抗侧信道攻击)、argon2id(结合两者优点,推荐使用)。相比 bcrypt,argon2 提供更灵活的内存和并行度调节。如果系统支持,优先选择 argon2id;如需广泛兼容,bcrypt 仍是极佳选择。

为什么不应该用 MD5 或 SHA-1 存储密码?

MD5 和 SHA-1 是通用快速哈希算法,设计初衷是数据完整性校验而非密码存储。它们计算速度极快(每秒可计算数十亿次),且没有内置盐值机制,极易受到彩虹表查询和GPU暴力破解。现代硬件可以在秒级内破解大多数常见密码的 MD5 哈希。请务必将它们替换为 bcrypt 或 argon2。

什么是盐值(Salt)?为什么重要?

盐值是在哈希计算前附加到密码上的随机数据。它的主要作用是:1)使相同密码产生不同哈希,防止攻击者发现重复密码;2)使预计算的彩虹表攻击失效。bcrypt 和 argon2 会自动生成并嵌入盐值到哈希结果中,无需手动管理。一个好的盐值应该是密码学安全的随机数,长度至少 16 字节。

如何识别一个哈希值是什么类型?

可以通过格式特征识别:1)查看前缀(如 $2b$ 表示 bcrypt,$argon2id$ 表示 argon2);2)检查字符集(纯十六进制 [0-9a-f] 通常是 MD5/SHA 系列);3)计算长度(32字符=MD5/NTLM,40字符=SHA-1,64字符=SHA-256,128字符=SHA-512)。本工具可自动完成这些检测。

NTLM 哈希和 MD5 长度相同,如何区分?

两者都是 32 位十六进制,仅从长度无法区分。需要结合上下文:如果来自 Windows 系统或 Active Directory,大概率是 NTLM(实际上是 MD4 算法);如果来自 Web 应用或数据库,更可能是 MD5。在安全测试中,可使用工具尝试两种算法。注意:NTLM 使用 UTF-16LE 编码的密码进行 MD4 计算。