piapia123
zh

哈希类型识别

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

拿到一串哈希,第一件事往往是“这是哪种算法”。这个工具按长度与字符集把它可能是的算法列出来,覆盖 MD5 / SHA 家族 / SHA3 / BLAKE / RIPEMD / CRC 以及 bcrypt、argon2、scrypt、crypt 家族、MySQL、Django 等 40 多种。 ⚠️ 请务必看清它给的是候选,不是结论:一个 32 位的十六进制串可能是 MD5、NTLM、MD4,也可能是 LM —— 它们长度一样、字符集一样,光看那一串字符永远分不出来。真正能确定的只有带前缀的那些(`$2b$` 一定是 bcrypt、`$argon2` 一定是 argon2、`*` 加 40 位十六进制一定是 MySQL 4.1),因为前缀就是格式的一部分。要确定是哪一个,只能看它的来源,或拿原文重新算一遍逐条比对。 全部在浏览器本地完成,你粘进来的哈希不离开这个页面。

功能

  • 按长度 + 字符集识别,覆盖 40 多种算法
  • 十六进制、Base64、Base64URL、连字符 UUID 混在一起也能逐行认
  • 带前缀的(bcrypt / argon2 / scrypt / crypt / Django / MySQL)按前缀判定,不混进长度分支
  • 候选按可能性分高、中、低三档,用颜色标出
  • 明说“长度相同的算法无法区分”,避免被当成结论
  • 可选择只列算法名,或连判定依据一起显示
  • 每行可单独复制,也可复制全部

使用方法

  1. 一行粘入一个哈希值(可多行)
  2. 结果里给出长度、字符集与候选算法
  3. 需要核对依据就保持“显示判定依据”勾选
  4. 只看名字就切换到“只列可能的算法名”

常见问题

它能确定告诉我这是 MD5 吗?
不能,没有任何工具能 —— 只要长度与字符集相同,MD5、NTLM、MD4、LM 的输出形式就是一模一样的,肉眼和程序都无法从字符串本身区分。所以这里给的是候选列表并按可能性排序。唯一能确定的是带前缀的格式(bcrypt、argon2、crypt、Django、MySQL 4.1)。
怎么才能真的确定是哪种算法?
两条路:一是看它的来源(数据库字段名、导出文件的说明、代码里调用的是哪个函数);二是拿原始明文用各种算法各算一遍,看哪一个与这串值相等 —— 这才是唯一可靠的判定。
为什么纯数字的串也会被当成哈希?
因为纯数字且长度为偶数的字符串,既是合法的十六进制(对应某些摘要长度),也是 Cisco type 7 密码的形状。所以两者都会列出来 —— 又一次说明“形状相同就无法区分”。
哈希会被上传吗?
不会。识别完全在浏览器里按字符串长度与字符集做,不查询任何数据库、不请求任何接口。

相关工具