MD4 哈希码计算器
已出版: 2025年2月16日 UTC 22:53:38
最后更新 2026年1月12日 UTC 09:07:46
MD4(消息摘要算法4)是罗纳德·里维斯特于1990年设计的一种加密哈希函数。它能根据任意长度的输入生成一个固定的128位(16字节)哈希值。由于存在可利用碰撞攻击(找到两个产生相同哈希值的不同输入)的漏洞,MD4目前被认为在密码学上已被破解,因此在设计新系统时不应使用。此处列出MD4是为了方便在需要生成向后兼容的哈希码时使用。
完全披露:本页面使用的哈希函数的具体实现并不是我写的。它是 PHP 编程语言中的一个标准函数。我只是为了方便,制作了网络接口,以便在此公开使用。
关于 MD4 哈希算法
我不是数学家,所以我尽量用非数学专业人士也能理解的方式来解释这个哈希函数 ;-) 如果你更喜欢数学严谨的解释,你可以在很多其他网站上找到。
好的,你可以把 MD4 想象成一台特殊的碎纸机。但它不是粉碎纸张,而是将任何信息(比如信件、密码或书籍)“粉碎”成一张固定大小的小收据。无论你的信息长短,这台“粉碎机”都会给你一张长度正好为 16 字节(128 位),或者说十六进制 32 个字符的迷你收据。
要正确销毁纸条,需要完成以下四个步骤:
第一步:准备信息
- 碎纸前,你需要调整纸张大小,使其完美地放入碎纸机中。
- 如果你的信息太短,你可以添加一些额外的空白(比如涂鸦或填充内容),使纸张大小刚好合适。
- 如果太长,就把它分成多个相同大小的页面。
步骤二:添加秘密印章
- 调整完信息后,你可以在末尾添加一个秘密印章,说明原始信息的长度。
- 这样可以帮助碎纸机跟踪信息的原始大小,无论你添加了多少填充物。
步骤三:碎纸过程(三轮魔法)
- 现在,这条信息将被送进碎纸机。
- 碎纸机有 4 个齿轮(A、B、C 和 D),它们按照特殊的模式一起旋转。
- 齿轮会经历三轮旋转,分别完成以下动作:混合单词;将部分零件翻转;像魔方一样扭转;将不同的零件碰撞在一起。
- 每一轮都让信息看起来越来越混乱,变得难以辨认。
第四步:最终收据
- 经过一番旋转、翻转和粉碎之后,碎纸机吐出一张收据——一串数字和字母(哈希值)。
- 无论您撕碎的是一个单词还是一整本书,这张收据的长度始终相同!
不幸的是,随着时间的推移,人们发现这个神奇的碎纸机并非完美无缺。一些聪明人找到了欺骗碎纸机的方法,使其对两条不同的信息生成同一张收据(这被称为碰撞),并预测齿轮的旋转方式,然后利用这些信息伪造收据。正因如此,MD4 不再被认为是安全可靠的,尤其对于重要信息而言。
进一步阅读
如果您喜欢这篇文章,您可能还会喜欢这些建议:
