我正在运行一些我用 C 编写的代码,它从其他人编写的散列库(md5.c 和 md5.h)中调用 md5 散列功能。我看到的奇怪行为是:
散列工作完美=我散列一个字符串,它得出的确切散列是我已经验证它与多个其他来源的确切散列。
在我的 OSX 机器上编译和运行时,散列功能可以完美运行,并且计算出的散列完全符合其应有的状态。
相同的代码,在基于 Linux 的服务器上上传和编译没有任何更改,它计算不同的(错误的)哈希。
有没有人知道这到底是怎么可能的?过去一周它一直在疯狂,我不明白为什么这甚至是可能的。我还在另一台机器上对其进行了测试,编译并执行,它运行良好。就在我将它上传到服务器时,哈希不再正确。
可以在以下位置找到散列功能文件:http: //people.csail.mit.edu/rivest/Md5.c
已解决:谢谢大家 这是 64 位架构问题。调试时让我想到这一点真是太烦人了.......