文字列のMD5ハッシュを取得しようとしています"password"
。
MD5PasswordEncoder
Springフレームワークのクラスを使用していると、次のようになります。
5f4dcc3b5aa765d61d8327deb882cf99
しかし、MessageDigest
MD5でJavaのクラスを使用していると、次のようになります。
9577-525990-89101-4229-12539-34-72-126-49-103
1つは16進数で、もう1つは10進数です。なぜ違いがあるのですか?コードは次のとおりです。
public static void main(String[] args) {
PasswordEncoder pEncoder = new Md5PasswordEncoder();
System.out.println(pEncoder.encodePassword("password", null));
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update("password".getBytes("UTF-8"));
byte [] digest = md.digest();
StringBuffer sb = new StringBuffer();
for (byte b : digest) {
sb.append(b);
}
System.out.println(sb.toString());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}