我介紹了Web應用程序的Spring安全性。首先,我有我的身份驗證管理器如下。Spring如何使用鹽編碼密碼
<authentication-manager>
<authentication-provider>
<password-encoder hash='md5'>
</password-encoder>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
對於測試,我將使用'1'作爲用戶名和密碼。我使用了一個在線md5哈希生成器,併爲md5(1)獲得'c4ca4238a0b923820dcc509a6f75849b'。使用此配置登錄正常工作。我想嘗試鹽,我修改身份驗證管理器如下。
<authentication-manager>
<authentication-provider>
<password-encoder hash='md5'>
<salt-source user-property="username"/>
</password-encoder>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
因此,正如我在網絡閱讀中使用的鹽是怎麼樣的哈希(鹽+密碼)。因此,使用相同的工具我散列'11',然後得到散列值'6512bd43d9caa6e02c990b0a82652dca'。我用該值更新數據庫。但是現在,登錄失敗,並顯示錯誤「導致:錯誤憑據」。這意味着密碼與數據庫不匹配。所以我的問題是,這是否意味着Spring使用不同的方式進行醃製?
使用[BCrypt](http://stackoverflow.com/a/8528804/241990)。它更安全,醃製自己照顧。 MD5對於哈希密碼並不是一個好的選擇。 – 2013-03-12 17:51:43
應該試試。謝謝盧克 – 2013-03-13 04:55:53