MD2 哈希生成器

在浏览器中即时生成任意文本的 MD2 哈希值。支持 UTF-8、十六进制或 Base64 输入,输出十六进制或 Base64。免费、私密,无需上传。

MD2 在密码学上已被攻破(可以构造碰撞)。仅可用于校验和或兼容旧系统,不要用于安全用途。
MD2

完全在浏览器中运行,您的数据不会被上传。

什么是 MD2 哈希生成器?

MD2 是 Ron Rivest 于 1989 年为 8 位机器设计的 128 位消息摘要算法,规范见 RFC 1319。本工具会在你输入时实时计算文本或原始字节(十六进制或 Base64)的 128 位 MD2 摘要,并以 32 个十六进制字符或 Base64 显示。

如何使用 MD2 哈希生成器

  1. 在 要计算哈希的文本 中输入或粘贴内容——摘要会随输入实时更新(输入框为空时显示空输入的哈希值)。
  2. 选择 输入编码:文本 (UTF-8) 会把字符按 UTF-8 计算哈希,十六进制字节 或 Base64 则对解码后的原始字节计算哈希。
  3. 选择 输出格式(十六进制小写、十六进制大写或 Base64),然后点击 复制。

示例

输入
abc
输出
da853b0d3f88d99b30283a69e6ded6bb

3 个 ASCII 字节“abc”的 MD2(UTF-8,十六进制小写输出),即标准测试向量。

何时使用 MD2 哈希生成器

MD2 文本工具适合对字符串计算哈希:复现文档或代码中的值、构造测试向量、比对 API 签名的输入,或检查程序应输出的结果。不要用它来防范攻击者——它在密码学上已被攻破。也不要用它校验下载的文件:把文件内容复制到文本框会改变换行符和编码,请使用 MD2 文件校验工具。任何新的用途请选用 SHA-256 或 SHA3-256。

MD2 哈希生成器 的工作原理

MD2 先把消息填充为 16 字节的整数倍(每个填充字节的值等于填充的字节数),再附加一个用圆周率数字派生的置换表计算出的 16 字节校验和,然后用同一个 S 盒让每个 16 字节分组在 48 字节状态上经过 18 轮运算。状态的前 16 字节就是 128 位摘要。它是面向字节的算法,与现代哈希相比非常慢。文本会先转换为字节(默认 UTF-8),因此相同的字符总会得到相同的哈希值。

常见用例

  • 在单元测试或测试数据中核对字符串的预期 MD2
  • 对从调试器、抓包结果或协议规范中复制的十六进制字节计算哈希
  • 比较两种编程语言之间结果不一致的 MD2 输出
  • 从文本生成确定性的标识符或缓存键
  • 复现旧系统中保存的历史 MD2 值

安全提示

MD2 已经过时且不安全。 目前已有原像攻击和碰撞攻击(RFC 6149 已将 MD2 列为历史状态)。仅用于复现或检查旧系统中的值,例如旧的 X.509 证书;绝不要用于签名、密码,或防范攻击者的完整性校验。普通哈希也不适合存储密码:请使用 Argon2、scrypt 或 bcrypt 等慢速、加盐的密码哈希。所有计算都在你的浏览器本地完成,输入的内容不会发送到任何地方。

常见问题

为什么还有人使用 MD2?

主要是为了校验旧数据:上世纪 90 年代的一些旧 X.509 证书和 PKCS#1 签名使用 md2WithRSAEncryption。复现这些值是如今唯一现实的用途。

MD2 与 MD4 或 MD5 是同一种算法吗?

不是。它们的输出都是 128 位,设计者也相同,但 MD2 采用完全不同的、面向字节且基于圆周率 S 盒的结构。相同的输入会得到毫不相关的摘要:abc 在 MD2 中是 da853b0d…,在 MD5 中是 900150983c…。

为什么只改一个字符,哈希值就完全变了?

这就是每种密码学哈希都刻意追求的雪崩效应:输入翻转一个比特,128 位输出中大约一半会改变,因此相似的输入会得到毫不相关的摘要。

末尾的空格或换行符有影响吗?

有。哈希覆盖每一个字节,所以 abc 和后面跟着换行符的 abc 会得到不同的 MD2 值。请确保输入中恰好是你想计算哈希的那些字节。

探索更多分类