我正在使用 Tomcat 6,目前表单身份验证在 MySql 数据库中用作明文密码。我已经在密码中添加了加密以散列 SHA-256 中的密码,它似乎可以工作,但是当我尝试使用 server.xml 中的 digest="SHA-256" 和 digestEncoding="base64" 通过 Tomcat 6 进行身份验证时,它不会进行身份验证。如果我从数据库中复制密码并将其输入密码字段,我可以验证我的用户。
如何让 Tomcat 允许我使用普通密码但在 MySql 中存储的哈希密码对用户进行身份验证?
这是我添加到我的应用程序的哈希代码:
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
byte bin[] = messageDigest.digest(password.getBytes("UTF-8"));
return Base64.encodeBase64String(bin);