如上,为什么我的一段字符串,在windows和unix上会是两个不同的值补充:编码publicstaticStringmd5(byte[]s){charhexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d...
如上,为什么我的一段字符串,在windows和unix上会是两个不同的值
补充:
编码
public static String md5(byte[] s){
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd','e', 'f' };
try{
byte[] strTemp = s;
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++){
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
}
catch (Exception e){
return null;
}
}
要转换的字符:
String str = "中华人民共和国";
System.out.println(md5(str.getBytes()));
windows结果
025fceab9418be86066b60a71bc71485
unix结果:
0d8f3b469fe4d1f87d5ddc2ed5b25a79
谁能告诉我哪个是对的,有没可能和字符串编
展开