문자열을 md5로 변환하는 간단한 함수를 작성하고 출력에 이상한 문자가 표시됩니다. 일부 문자 인코딩이 엉망이라고 가정합니다. 내가 잘못하고있는 것을 지적 할 수 있습니까?가비지를 표시하는 java 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
FWIW, 타사 라이브러리를 사용할 수있는 경우 [Guava] (http://guava-libraries.googlecode.com)는 'Hashing.md5()'를 사용하여 한 줄짜리 코드로 16 진 인코딩 MD5 해시를 얻을 수 있습니다. .hashString (문자열, Charsets.UTF_8) .toString()'. –