有关MD5的使用,在Debug和Release下面返回的值怎么不一样?

时间:2021-01-24 23:05:57
我现在在一个dll中提供一个输出接口,GetMd5(LPCSTR str),
然后我再别的程序中调用该接口加密一个字符串。然后在该程序中将该字符串也进行md5加密,然后将两者进行比较,当dll是Debug,并且调用dll的程序也是Debug的时候,两者的得到的值是一样的,当只要其中一个是Release的时候,就不同,搞了一天也不知道是怎么回事?
我用的是md5.h 和md5.c源文件,有没有人遇到过同样的问题?着急呀!

8 个解决方案

#1


你不会是启动了/O2优化吧?如果这样的话得出来的结果就算不一样也不足为奇……

#2


初始值?

#3


编译环境不同,可能进行了一些优化

#4


嘿嘿

GetMd5(LPCSTR str)???
输入是str,输出呢?

#5


BSTR GetMd5(LPCSTR str)
str是输入,返回BSTR型

有可能是启动了/O2,我再试试看,行不行

#6


ding

#7


问题解决了,好像也不是O2的问题,好像和Debug Info里面的设置有关,开始的时候Debug Info里面设的是Program Database,我后来改为None,重新编译以下就好了,谢谢各位!给分了

#8


谢谢

#1


你不会是启动了/O2优化吧?如果这样的话得出来的结果就算不一样也不足为奇……

#2


初始值?

#3


编译环境不同,可能进行了一些优化

#4


嘿嘿

GetMd5(LPCSTR str)???
输入是str,输出呢?

#5


BSTR GetMd5(LPCSTR str)
str是输入,返回BSTR型

有可能是启动了/O2,我再试试看,行不行

#6


ding

#7


问题解决了,好像也不是O2的问题,好像和Debug Info里面的设置有关,开始的时候Debug Info里面设的是Program Database,我后来改为None,重新编译以下就好了,谢谢各位!给分了

#8


谢谢