我在 Glassfish 中有这个工作,如果我不散列我的密码(所以它们是纯文本)它工作正常。
但是,如果我尝试使用散列,我无法让它工作。在我的 Java 代码中,当我创建一个新用户时,我像这样散列密码(使用字符集编码的默认值)
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] hashedPassword = md5.digest(password.getBytes());
return new String(hashedPassword);
在领域的属性中,我将“password.digest”属性设置为 MD5。
请注意,我将在现实中使用 SHA-512,但为了简单起见,我尝试使用 MD5,因为在 FlexibleJDBCRealm 的文档中提到了它。
有任何想法吗?谢谢
PS现在Java中包含这种领域的更“官方”版本吗?如果 FlexibleJDBCRealm(或类似的)在某个时候内置于 Java EE,那就太好了。