C# MD5 与 java MD5 生成的字符串不一致问题

C# 源码

C# MD5 与 java MD5 生成的字符串不一致问题


查了下C#的api ,System.Text.UnicodeEncoding.Unicode.GetBytes(s)用的是utf-16 little-endian编码方式。


java 源码


public static String getMD5(String str, String encoding) throws Exception {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(str.getBytes(encoding));

byte[] result = md.digest();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < result.length; i++) {

int val = result[i] & 0xff;

sb.append(Integer.toHexString(val));

}

return sb.toString();

}


运行结果

4b98b56b759916acc26268f2792a123

4b98b56b759916acc26268f2792a123


你可能感兴趣的:(C# MD5 与 java MD5 生成的字符串不一致问题)