【发布时间】:2017-02-28 06:27:20
【问题描述】:
作为练习,我尝试在 PHP 中实现 MD5。我知道 PHP 有一个内置函数,但我想阅读、运行和研究一个工作源。我发现this script 在取消注释适当的部分(以启用消息填充)并且相应地格式化数组(以与我的 PHP 版本兼容)时效果很好。但是产生的散列 - 尽管长度正确 - 不是 MD5。例如,零长度字符串的 MD5 哈希应该是:
d41d8cd98f00b204e9800998ecf8427e
但脚本返回的哈希是:
85bd946a585af9fd3fb9eda68707c1d8
我尝试了其他字符串,但没有相关性。我一直在研究 MD5,所以对它的工作原理有一个合理的了解。我一直在审问剧本,但它似乎是合法的。我想我是在向另一个人大喊大叫,以挑战发现这个脚本为什么没有返回 MD5。
【问题讨论】:
-
my version of PHPPHP7 ? -
我运行了它,它吐出了一大堆
undefined indexes,所以我就放弃了。 -
嗨,不幸的是,我运行的是旧版本 - 5.3.28 但是,它仍应返回真正的 MD5 哈希。不要以为你能告诉我这个脚本是否在 7 中返回一个真正的 MD5 哈希?
-
您是否寻找过其他开源 MD5 项目?由于它只是用于教育,而且它不完全是一个小众算法,我猜你可以找到其他开箱即用的东西,你可以从中学习
-
@alexanderbird 是的。不乏关于 MD5 的信息,我已经阅读了 Rivest 的原始备忘录。从另一种语言转译也没有解决这个脚本的奥秘。令人惊讶的是,我还没有找到一个可以遵循 1 个示例的来源 - 这会很有帮助。
标签: php security hash md5 md5-file