1
在这里的例子http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealmuser_pass
列的类型是varchar(15)
,而java.security.MessageDigest
类需要并返回byte[]
。哪个转换应该适用于密码'abcd'
(例如)将其转换为Tomcat预期的MD5摘要?如何为Tomcat JDBCRealm准备摘要密码?
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();
}
}