2012-01-24 230 views
2

我正在使用以明文形式存儲密碼的遺留應用程序。我已將應用程序移植到spring 3 mvc + security。我也成功地使用sha256 +基於用戶名的salt來處理認證和授權的spring security。這一切都很好,但是作爲部署的一部分,我需要遷移現有的數據庫以使用新的密碼模式。我不確定spring是如何用salt來密碼哈希的,所以我無法編寫一個可以用來將舊的純文本密碼遷移到新的sha256 + salt模式的sql腳本。是否有任何文檔或資源可用於解決此問題?春季安全密碼哈希+鹽

+0

您是否嘗試過使用他們的http://static.springsource.org/spring-security/site/docs/2.0.x/apidocs/org/springframework/security/providers/encoding/ShaPasswordEncoder.html?您也知道那麼你是否試圖查看哈希符合? – Cratylus

+0

我試過用鹽作爲sha256發生器作爲前綴和後綴,但沒有運氣匹配的密碼彈簧生成 –

回答

9

被記錄在BasePasswordEncoder

生成的密碼將在password{salt}形式。

所以你的情況,你使用這個簡單的代碼可以計算鹽漬密碼:

new ShaPasswordEncoder(256).encodePassword(oldPassword, randomSalt) 

注:ShaPasswordEncoder延伸BasePasswordEncoder

+0

我是個白癡......當我嘗試用鹽作爲前綴/後綴我didn '包括{} ..謝謝 –

0
  1. 如果您使用的是默認密碼編碼,那麼the source似乎很有用。 (選擇分支適用於您正在使用的版本)。
  2. 您可以實現您自己的PasswordEncoder並定義鹽的使用方式。