MD2哈希生成
使用我们的MD2哈希生成工具生成任意字符串输入的MD2哈希,确保数据完整性。

MD2哈希生成是一款免费工具,可从任意字符串生成MD2哈希,用于校验和比对、去重或兼容旧系统。
什么是MD2,它现在还安全吗?
MD2是Ronald Rivest于1989年设计的一种加密哈希函数,但如今已被攻破,不再适合安全用途。它最初面向早期的8位计算机设计,随后于1992年收录在RFC 1319中。
MD2会将输入数据转换为固定长度的指纹。它采用单向设计,通常无法仅凭摘要计算出原始数据。MD2生成的摘要始终为128位,一般写成32个十六进制字符,使用数字0至9和字母a至f。
MD2的抗碰撞能力已被攻破。这意味着,即使预期摘要可信,也无法可靠地用它确认数据是否遭到攻击者篡改。互联网工程任务组已将MD2列为Historic状态,因此不应将其用于新的安全系统、数字签名或证书。如果需要抵御蓄意篡改,请使用SHA-256等当前算法生成可信摘要,或使用MAC或数字签名。

如何生成MD2哈希?
输入要计算哈希的字符串,然后在MD2 Hash结果字段中查看由32个十六进制字符组成的摘要。对于完全相同的输入字节序列,MD2哈希生成每次都会得到相同的摘要。
- 准确输入或粘贴旧系统或校验和记录所要求的文本。
- 生成结果,并复制全部32个十六进制字符。
- 将结果与预期摘要比较,确认没有遗漏任何字符。

计算在服务器上完成。你的输入会通过HTTPS发送到服务器,但不会被存储。即便如此,也不要向这款服务器端MD2工具提交密码、私钥、访问令牌或其他机密信息。
MD2哈希可以解密或还原吗?
不可以。哈希不是加密,也不存在解密密钥,因此MD2哈希无法被解密。摘要只包含固定长度的结果,并不是原始输入经过编码后的副本。
不过,攻击者仍可能通过猜测候选输入、逐一计算哈希并比较结果,找出某个MD2输入。使用MD2处理的短单词、常见密码和可预测标识符尤其容易受到字典攻击和预计算列表的威胁。MD2无法提供保密性,保密需要使用加密技术。此外,MD2的安全设计已经过时,不适合需要抵御攻击者的场景。
如果多个可能的输入会产生相同摘要,哈希也无法告诉你实际使用的是哪一个输入。这种情况称为碰撞,而MD2已经无法提供可接受的抗碰撞能力。

MD2现在还用于哪些场景?
MD2仍可用于重现旧软件、文件格式、归档文件或已记录测试数据所要求的校验和。对于明确要求使用MD2的现有系统,它也可以支持与安全无关的任务。
- 旧系统兼容:适用于旧协议或数据库存储32个字符的MD2摘要的情况。
- 校验和比对:用于检测意外变化,前提是不存在能够选择数据内容的恶意方。
- 去重:适用于已经采用MD2标识符,且封闭、无对抗风险的数据集合。
- 历史测试:用于根据较早的规范检查具体实现。
MD2绝不能用于存储密码。它没有内置盐值或可调节的工作因子,即使添加盐值,也不会让它变成适合密码哈希的方案。它同样不能用于保护软件下载文件或证据免遭蓄意修改。如果系统明确要求使用相关算法,可以使用MD4哈希生成或MD5哈希生成,但这两种算法都不适合新的安全敏感型设计。
输入、字节与精确匹配
MD2哈希生成会对服务器端字符串输入所对应的字节计算哈希,因此输入中的每个字符都很重要。例如,hello会生成一个由32个字符组成的十六进制结果,而Hello是不同的输入,应会得到另一个结果。输入中的前导空格、尾随空格、制表符、标点和换行符都会参与计算,不会被忽略。
在MD2哈希生成的字符串字段中输入数字时,工具会按照数字的字符形式计算哈希。例如,文本42表示字符4和2,而不是二进制整数值。空字节序列同样有一个有效的MD2摘要。
这款工具在服务器端计算MD2时,带重音符号的字符和非拉丁字符会受到字符编码的影响,因为算法接收的只有字节。两个应用显示的文本可能相同,但如果编码方式不同,就会产生不同的哈希。对于存在多种有效表示形式的字符,Unicode规范化方式也可能影响结果。
常见问题
MD2和MD5是同一种算法吗?
不是。MD2和MD5是两种不同的算法,尽管它们都会生成128位摘要,并通常显示为32个十六进制字符。MD2出现得更早,采用面向字节的设计,而MD5后来针对32位计算机上的高速处理进行了设计。
计算MD2哈希时区分大小写吗?
输入区分大小写,因此Example和example是两个不同的字符串。对于显示出来的十六进制摘要,只要除字母大小写外的字符均未改变,大写和小写字母表示相同的数值。
可以用MD2计算文件哈希吗?
这款工具用于处理字符串输入,因此不要认为粘贴文件名就能计算文件内容的哈希。如需计算文件校验和,请使用能够读取文件原始字节并明确支持MD2的软件,然后比对完整的32个字符结果。
为什么这里的MD2结果和其他程序不同?
两个程序计算的字节可能并不相同,原因包括末尾换行符、复制时带入的空格、字符编码或Unicode规范化方式。如果预期输入是以十六进制表示的字节数据,还可能是因为程序对可见的十六进制表示进行了哈希,而不是对原始字节进行计算。
最后检查
确认接收系统确实要求使用MD2,完整保留输入内容,并比对全部32个十六进制字符。如果你正在设计新系统,请使用基于当前哈希算法的可信摘要、MAC或数字签名进行完整性检查,并使用专门的密码哈希函数处理密码。只有在既有旧格式没有可行替代方案时,才应继续使用MD2。