2013-12-12 56 views
2

我有一個mysql數據庫,它使用MySQL的PASSWORD()函數存儲密碼。從我可以從這個URL收集(並驗證它自己,以確保它適用於我的版本的MySQL)MySQL PASSWORD()函數和SpringSecurity ShaPasswordEncoder

http://www.palominodb.com/blog/2011/12/04/hashing-algorithm-mysql-password

MySQL的哈希函數是一個雙SHA1哈希值與第一結果在再次散列之前從二進制轉換爲十六進制。

SELECT PASSWORD("this_is_a_random_string") as 'pass'; 

pass: *12E76A751EFA43A177049262A2EE36DA327D8E50 

SELECT concat('*', UPPER(SHA1(UNHEX(SHA1("this_is_a_random_string"))))) as 'pass'; 

pass: *12E76A751EFA43A177049262A2EE36DA327D8E50 

所以我想要做的就是使用SpringSecurity的ShaPasswordEncoder來允許Spring使用這些散列。

除了繼承自己的PasswordEncoder並使用ShaPasswordEncoder構建上述SQL中顯示的處理步驟之外,ShaPasswordEncoder本身是否具有設置自身以使用MySQL的PASSWORD函數的標準方式?

+0

+1有趣的揭示)但我同意比爾卡爾文的答案。 – Devart

回答