2012-04-29 36 views
4

我以明文形式(开发/受控环境)使用Tomcat 7/JDBCRealm身份验证。现在我想将网络应用上传到我的托管环境,因此我需要消化这些密码。无法让Tomcat JDBCRealm使用SHA2

我将'digest =“MD5”'添加到server.xml中的领域部分,并通过使用MySQL的MD5()函数进行消解来替换现有的明文密码来测试某些帐户。

这就OK了。

当我尝试使用SHA2(server.xml中的'digest =“SHA2”',以及MySQL的SHA2()函数来消化表中的密码)时,我不断登录失败。我试过MySQL的SHA2(pwd,224),SHA2(pwd,256),... 384,... 515,但都没有工作。

我的网页搜索tomcat JDBCRealm/digest属性是不是很丰富。

我做错了什么?

回答

2

查看Tomcat日志中的消息,告诉您SHA-2不是有效的算法。如果没有这种信息,请提出一个Tomcat错误。

您需要使用下列之一:

  • SHA-256
  • SHA-384
  • SHA-512

很显然,你需要使用相应的摘要在MySQL中。

+0

感谢马克,我不记得在tomcat日志上看到任何错误,但我会仔细检查,如果我错过了一些东西。在server.xml中设置digest =“SHA-256”而不是digest =“SHA2”? JDBC领域的参数记录在哪里?标准的html文档仅显示MD5的值,但不显示其他摘要。我搜索了它,但空手而出。 – adaj21 2012-05-01 01:30:24

+0

您需要使用SHA-512或上面引用的其中一个值。支持的MessageDigests的标准名称可以在Java文档中找到。 http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#MessageDigest – 2012-05-01 07:19:27

+0

谢谢马克!我知道我正在寻找错误的地方(tomcat文档) – adaj21 2012-05-02 11:47:41