我写了一个简单的函数来将字符串转换为MD5,但输出结果中出现了奇怪的字符。我认为是某个字符编码出了问题。请问有人能指出我的错误吗?
public class App
{
public static void main(String[] args){
String str = "helloWorldhelloWorldhelloWolrd";
getHash(str);
}
public static void getHash(String str){
try {
byte[] three = str.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(three);
String str1 = new String(thedigest,"UTF-8");
System.err.println(str1);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
输出: 这是我看到的内容。
n?)?????fC?7
Hashing.md5().hashString(string, Charsets.UTF_8).toString()
获取十六进制编码的 MD5 哈希值。 - Louis Wasserman