同样是对hellworld加密
php的结果为:
sha1:
6adfb183a4a2c94a2f92dab5ade762a47889a5a1
md5:
fc5e038d38a57032085441e7fe7010b0
而C#中
1
2 // SHA1 hash:
3 string h1 = Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes("helloworld")));
4
5 // MD5 hash:
6 string h2 = Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes("helloworld")))
结果为:
sha1:
/F4DjTilcDIIVEHn/nAQsA==
md5:
at+xg6SiyUovktq1redipHiJpaE=
相差好大,而且长度都不一样了。
5 个解决方案
#1
PHP不会。
应该不会有这种问题,是不是编码的问题?
应该不会有这种问题,是不是编码的问题?
#2
摘要的结果当然是一样的,不一样的是你在C#里又把结果转换成了Base64的字符串,这当然就不一样了,你又加工了一遍嘛。
FC-5E-03-8D-38-A5-70-32-08-54-41-E7-FE-70-10-B0 这是C#里md5实际的结果和php里的fc 5e 03 8d 38 a57032085441e7fe7010b0 怎么会不一样呢,一个字节一个字节看看
FC-5E-03-8D-38-A5-70-32-08-54-41-E7-FE-70-10-B0 这是C#里md5实际的结果和php里的fc 5e 03 8d 38 a57032085441e7fe7010b0 怎么会不一样呢,一个字节一个字节看看
#3
结果是一样的,但是你要在转换成Base64的字符串之前比较。
#4
能否告知如何进行字符转换,我将byte.toString() 都已经不是我想要的内容了而且长度也不对啊。
#5
使用toString(value,radix)已经解决了
#1
PHP不会。
应该不会有这种问题,是不是编码的问题?
应该不会有这种问题,是不是编码的问题?
#2
摘要的结果当然是一样的,不一样的是你在C#里又把结果转换成了Base64的字符串,这当然就不一样了,你又加工了一遍嘛。
FC-5E-03-8D-38-A5-70-32-08-54-41-E7-FE-70-10-B0 这是C#里md5实际的结果和php里的fc 5e 03 8d 38 a57032085441e7fe7010b0 怎么会不一样呢,一个字节一个字节看看
FC-5E-03-8D-38-A5-70-32-08-54-41-E7-FE-70-10-B0 这是C#里md5实际的结果和php里的fc 5e 03 8d 38 a57032085441e7fe7010b0 怎么会不一样呢,一个字节一个字节看看
#3
结果是一样的,但是你要在转换成Base64的字符串之前比较。
#4
能否告知如何进行字符转换,我将byte.toString() 都已经不是我想要的内容了而且长度也不对啊。
#5
使用toString(value,radix)已经解决了