2012-04-29 30 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