当前位置:  开发笔记 > 运维 > 正文

MD5哈希在服务器上的计算方式不同

如何解决《MD5哈希在服务器上的计算方式不同》经验,为你挑选了1个好方法。

我正在运行一些我用C编写的代码,它从其他人编写的散列库中调用md5散列函数(md5.c&md5.h).我一直看到的奇怪行为是:

哈希工作完美=我哈希一个字符串,它出来的确切哈希我已经验证它与多个其他来源.

    在我的OSX机器上编译和运行时,散列功能非常有效,并且计算的散列完全符合预期.

    相同的代码,在基于Linux的服务器上没有上传和编译任何更改,它计算不同的(错误的)哈希.

有没有人对如何做到这一点有任何见解?过去一周它一直在疯狂,我不明白为什么这是可能的.我也在另一台机器上进行了测试,编译和执行,它完美无缺.就在我将它上传到服务器时,哈希不再正确.

散列函数文件可在以下网址找到:http: //people.csail.mit.edu/rivest/Md5.c

已解决:谢谢大家这是64位拱门问题.它的强大烦人让我想到了在调试时......



1> Ben..:

尝试更换(Md5.c第41行)

typedef unsigned long int UINT4;

通过

typedef uint32_t UINT4;

(如果需要,包括stdint.h)

在64位机器上,long int(通常)是64位长而不是32位

编辑:

我尝试了一个64位的opteron,这解决了这个问题.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有