首页 新闻 会员 周边 捐助

有关MD5加密的信息求助。

0
悬赏园豆:10 [已解决问题] 解决于 2014-01-10 11:14

与服务商进行java服务的对接,遇到签名时出现了问题,双方的签名始终不一致,经实验发现双方在单引号、双引号、小于号、大于号四个ASC字符上编码有误,在网上查找,发现两个提供在线MD5编码服务的网站:

http://tool.chinaz.com/Tools/MD5.aspx

该网站还用.net写的,其输出的MD5编码跟本人用.net生成的编码有误。

而下面的网站:

http://www.zzbang.cn/tools/md5

则是一致的。

 

请问这样的现象正常吗?

md5
问题补充:

有意思的是,同一个网站两个页面,MD5居然是不同的:

http://tool.chinaz.com/Tools/MD5.aspx

对那4个字符编码跟我生成的不一致。

 

http://tool.chinaz.com/Tools/hash.aspx

则是正确的。

519740105的主页 519740105 | 大侠五级 | 园豆:5810
提问于:2014-01-09 17:17
< >
分享
最佳答案
0

正常,.NET 和 JAVA 中的 string 对象都是 UNICODE,但是要 MD5 的话,需要转换成 byte[],这时候就涉及到编码,也就是转换出来的 byte[] 可能是 UTF-16,UTF-8,GB2312 或者别的。

收获园豆:10
Launcher | 高人七级 |园豆:45050 | 2014-01-09 17:21

拜托看清楚问题好不?中文都通过了,就在4个asc字符出现问题。

 

请问,除了UNICODE编码外,有哪种常见的编码其byte表示是不同的?

 

而且,第一个网站明显是用.net开发的,怎么也会这样?

519740105 | 园豆:5810 (大侠五级) | 2014-01-09 17:24

@519740105: 这只能说明其中一个的算法实现有BUG,为了保证正确性,我采用了 openssl-1.0.1e 库来测试 MD5 算法,经测试证实,字符['|"|<|>]([34|39|60|62])的 MD5 HASH 值同 http://tool.chinaz.com/Tools/hash.aspx 一样,这也同 .NET 平台上的 MD5CryptoServiceProvider 的计算结果是一致的。

Launcher | 园豆:45050 (高人七级) | 2014-01-10 11:03

@Launcher: 开始没发现hash这个页面。如果发现了这个页面,也就不会有问题了。

 

还是非常感谢!

519740105 | 园豆:5810 (大侠五级) | 2014-01-10 11:14
其他回答(1)
0

 @Launcher 大神是博客园高级博文专家哇  无处不在。

aehyok | 园豆:1212 (小虾三级) | 2014-01-09 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册