我不知道如何从PHP实现的这几行到Java ..MD5哈希值是不同的
$varInHex = "\x22\x33\xAd\xB5\x2b\xE6\x22\x33\x12\x36\x22\x31\xCA\x22\x11\x41\x62\x21\x22\x01\x55\x22\x71\x42\x10\x36";<br/><br/>
$result = md5($varInHex);
echo $result;
嗯,我试图将它转换,但我得到不同的结果!
byte[] seq20 = new byte[]{(byte)0x22,(byte)...etc...};
String str = seq20.toString();
String result = md5(str);
System.out.println(result);
public static String md5(String source) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(source.getBytes("UTF-8"));
return getString(bytes);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private static String getString(byte[] bytes) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
byte b = bytes[i];
String hex = Integer.toHexString((int) 0x00FF & b);
if (hex.length() == 1) {
sb.append("0");
}
sb.append(hex);
}
return sb.toString();
}
结果在java中是导致PHP不同..
你可以帮我吗? 谢谢提前:)
非常感谢你的伴侣!!!!!这是答案!问候! – fran 2010-11-29 14:27:59
查看@adves的回答。这是一个很好的教训:如果你能提供帮助,不要将自己的解决方案推广到常见问题上,因为你不可避免地会出错。 – amalloy 2011-05-15 08:37:34