ここの例ではhttp://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealmuser_pass
列のタイプはですがvarchar(15)
、java.security.MessageDigest
クラスは を取り、返しますbyte[]
。'abcd'
Tomcatが期待するMD5ダイジェストに変換するには、パスワードにどの変換を適用する必要がありますか?
PS。
私は以下を試しましたが、うまくいきます(digest.batの結果と一致します)。唯一の問題は長さです。ダイジェストは 15 文字よりも長くなります。テーブルだけ変えることはできますか?
public class DigestRunner {
/**
* @param args
* @throws NoSuchAlgorithmException
*/
public static void main(String[] args) throws NoSuchAlgorithmException {
String password = "abcd";
MessageDigest dig = MessageDigest.getInstance("MD5");
System.out.println(toString(dig.digest(password.getBytes())));
}
public static String toString(byte[] ba)
{
StringBuilder hex = new StringBuilder(ba.length * 2);
for(byte b : ba)
hex.append(String.format("%02x", b));
return hex.toString();
}
}