加密标识符

请粘贴要识别的值。

识别格式

您从数据库转储文件中提取出类似 $2y$10$... 或 5f4dcc3b5aa765d61d8327deb882cf99 的字符串,在开始破解或逆向分析之前,必须明确这些字符串的具体含义。该识别器通过运用长度、字符集、结构及前缀等启发式方法,来推测密文样本背后最可能采用的算法或编码方式。

如何识别密文

  1. 1

    粘贴样本

    单个哈希值、密文数据块、令牌或编码字符串。

  2. 2

    查看匹配的格式

    结果会对符合的格式进行排序:先列出可能性最大的格式,再列出样本可能属于的其他格式。

  3. 3

    交叉核对

    如果多个格式匹配,请使用哈希破解器或解码器确认哪一个是正确的。

  4. 4

    注意不确定性

    仅凭样本进行识别很少能得出确定结论;如果没有任何匹配,工具会明确提示。

本工具能识别的格式

十六进制摘要按长度识别(不区分大小写):

长度(十六进制字符数) 可能性最大的算法
8 CRC32 或其他 32 位校验和
32 MD5、MD4 或 NTLM
40 SHA-1 或 RIPEMD-160
56 SHA-224 或 SHA3-224
64 SHA-256 或 SHA3-256
96 SHA-384 或 SHA3-384
128 SHA-512 或 SHA3-512

例如,d63dc919e201d7bc4c825630d2cf25fdc93d4b2f0d46706d29038d01 共 56 个字符,它是单词“password”的 SHA-224 哈希值。

密码哈希按前缀和结构识别:

  • $2a$、$2b$、$2y$:bcrypt,成本因子从前缀中读取
  • $1$:md5crypt;$apr1$:Apache MD5(htpasswd)
  • $5$ 和 $6$:sha256crypt 和 sha512crypt
  • $y$:yescrypt;$7$ 和 $scrypt$:scrypt
  • $argon2id$、$argon2i$、$argon2d$:Argon2
  • $pbkdf2-sha256$(passlib)和 pbkdf2_sha256$(Django):PBKDF2
  • $P$ 和 $H$:phpass(WordPress、phpBB);$S$:Drupal 7
  • * 后接 40 个十六进制字符:MySQL 4.1+
  • {SSHA}、{SHA} 以及其他常见的 LDAP 方案

对于常见格式,结果还会显示 hashcat 模式(-m):MD5 0、NTLM 1000、SHA-1 100、SHA-256 1400、SHA-512 1700、bcrypt 3200、md5crypt 500、sha256crypt 7400、sha512crypt 1800、phpass 400、Drupal 7 7900、MySQL 4.1+ 300、Django PBKDF2-SHA256 10000。

密钥、令牌和标识符:

  • PEM 数据块(-----BEGIN ...-----):私钥(RSA、EC、OpenSSH、PKCS #8)、受密码保护的私钥、公钥、X.509 证书和证书签名请求
  • OpenPGP ASCII 封装:加密消息(BEGIN PGP MESSAGE)、密钥块和签名
  • OpenSSH 公钥(ssh-rsa、ssh-ed25519、ecdsa-sha2-...)
  • JSON Web Token:解码头部并显示 alg 和 typ;包含 enc 字段的五段式令牌会被判定为加密的 JWE
  • UUID 及其版本(它是标识符,不是哈希)

编码,仅在没有更具体的格式匹配时才会给出:

  • 十六进制、Base32、Base64 和 Base64url(附带解码后的字节长度),以及 URL(百分号)编码。
  • 解码后长度为 16 字节整数倍的十六进制或 Base64 数据,可能是 AES 等分组密码的输出;若为 128、256、384 或 512 字节,也可能是 RSA 加密数据或签名。长度为 16、20、28、32、48 或 64 字节的 Base64 或 Base32 数据,可能是原始的 MD5、SHA-1 或 SHA-2 哈希。

识别无法告诉您的信息

  • 100% 确定的精确算法。 64 个十六进制字符的字符串会被报告为 SHA-256 或 SHA3-256,但 BLAKE2s 等其他 256 位哈希看起来完全一样。MD5、MD4 和 NTLM 哈希都是 32 个十六进制字符。
  • 数据是用哪种密码算法加密的。 加密数据看起来是随机的。长度只能缩小范围,因此 AES 或 RSA 只是一种可能,而非定论。
  • 密钥强度。 bcrypt 哈希在其前缀中显示成本因子($2y$10$ = 成本 10),但并不反映底层密码本身的强度。
  • 是否经过加盐处理。 现代密码哈希算法(如 bcrypt、Argon2)均会进行加盐处理;而旧版算法(如原始 MD5/SHA)则可能不加盐。
  • 明文。 识别无法逆转哈希值;破解是一个独立的过程,仅可对您自己的数据进行。

识别出错的情况

  • 带自定义前缀的令牌。 应用程序有时会给哈希值加上自己的前缀;请先去掉这层包装。
  • 双重编码。 将二进制哈希转成十六进制后再用 Base64 包装,会导致识别错误。请先解码一次,再重新识别。
  • 不常见的长度。 截断的哈希值(例如把 SHA-256 的前 16 个字符用作 ID)与上表中任何摘要的长度都不符,因此会显示为普通的十六进制数据。
  • 一次粘贴多个值。 每次只检查一个值。如果粘贴的是哈希列表,只会检查第一行;请逐个粘贴其余的值。

使用场景

  • 安全审计:在加密算法迁移前,对整个代码库中的哈希类型进行归类记录。
  • CTF挑战:对未知数据块进行快速初步分析。
  • 事件响应:识别泄露的凭证格式。
  • 框架调试:确定库产生的编码类型。

伦理注意事项

识别哈希格式属于被动研究行为。未经授权破解他人生成的哈希值将违反大多数司法管辖区的计算机滥用法规。仅可对您拥有或获授权分析的哈希值进行操作。

常见问题

部分可以:MD5为32个十六进制字符,SHA-1则为40个。若两者长度处于相同范围,仅凭哈希值无法区分;通常需要结合上下文(如数据库列名、框架默认设置或泄露的表结构)才能确定。

不是。它只做识别。逆转哈希值或解密密文需要专门的工具(以及密钥,或破解所需的计算资源),且仅可对您自己的材料进行,方符合法律规定。

Argon2id(或采用高成本因子的bcrypt)是当前推荐方案;PBKDF2-SHA256和scrypt仍可接受;而普通MD5、SHA-1或未加盐处理的SHA-256则不适用于密码存储。

不会。您粘贴的值会发送到我们的服务器进行格式检查,但不会存储在任何数据库中,也不会添加到页面链接中。在两个步骤之间,它会保存在当前浏览器标签页中,点击“重新开始”即可清除。

相关工具

此工具还提供其他语言版本