这是我的java代码。
byte[] bytes = { 0x35, 0x24, 0x76, 0x12 };
MessageDigest m = MessageDigest.getInstance("MD5");
byte[] digest = m.digest(bytes);
C#
byte[] bytes = { 0x35, 0x24, 0x76, 0x12 };
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(bytes);
我注意到结果字节不同,我是java新手,有人可以解释..谢谢..
结果是
C#
[ 58, 74, 139, 3, 244, 223, 176, 230, 227, 252, 130, 221, 54, 159, 112, 239]
java
[ 58, 74,-117, 3, -12, -33, -80, -26, -29, -4,-126, -35, 54, -97, 112, -17]
答案 0 :(得分:1)
您可以在不同的结果上看到所有正值都相同。只有消极的是不同的。 .net byte type中的You can read it here是无符号的,因此其范围是0到255.在Java中,字节类型的范围是-128到127. {{3}}。