我正在使用Spring MVC,我想加密以dB爲單位保存的密碼,我查看了其他線程,並且他們建議使用MD5。使用MD5是否是一種好習慣,或者Spring中是否有其他方法來實現它?Spring MVC中的密碼加密
回答
你能澄清,如果你正在尋找春季安全或者Spring MVC。你的問題標題是「」Spring MVC中的密碼加密「,而你已經爲Spring Security標記了這個問題。
春季安全建議使用以下 org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
我正在尋找密碼加密在Spring Security – Ramanathan
好,我已經分享了Spring參考頁面的相關鏈接。如果您需要任何幫助,請添加評論。 – bhrt
否;使用BCrypt - 可在BCryptPasswordEncoder
的Spring中使用。
不要使用MD5,MD5哈希的問題在於它的執行速度相對較快,如果有人得到哈希值,他們可以很容易地蠻力。還有彩虹表,它們是密碼列表及其關聯的MD5散列。
正如@Jan Nielsen所言,BCrypt遠遠優越。我個人使用PBKDF2。這兩種方法都是通過在生成散列時使用隨機鹽來工作的。在數據庫中存儲salt和哈希密碼。我希望更進一步,並存儲用於創建散列的迭代次數。
這是一個關於密碼加密的好博客,其中詳細介紹了代碼示例的更多細節。 https://crackstation.net/hashing-security.htm
你可以使用BCryptPasswordEncoder
來編碼你的密碼,爲了做到這一點,你需要創建一個這個類的bean。
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
雖然註冊(保存新的用戶數據庫)你的用戶,你可以自動線PasswordEncoder
並調用encode
方法編碼密碼
@Autowired PasswordEncoder passwordEncoder;
public User registerUser(User user){
// other logic
String encryptedPassword = passwordEncoder.encode(user.getPassword());
user.setPassword(encryptedPassword);
//logic to save the user to DB
}
感謝您的回答,但我不明白,如果我通過這種方式加密密碼當我嘗試登錄時密碼如何匹配?因爲如果我沒有錯誤'BCryptPasswordEncoder'所有時間都會生成不同的值。通過我對Spring的新方法:) –
當您嘗試登錄時,如果您將密碼作爲簡單文本傳遞給登錄方法,那麼您將需要再次調用密碼的用戶提供的密碼上的編碼方法,然後再比較 –
- 1. 密碼加密和facebook登錄Spring MVC
- 2. 使用Spring的密碼加密/解密
- 3. Spring Cloud Config - 加密密碼
- 4. 加密ASP.NET MVC 3中的密碼
- 5. MVC 4加密默認密碼
- 6. Delphi中的密碼加密
- 7. AngularJS中的密碼加密
- 8. Rails中的密碼加密
- 9. 加密App.config中的密碼
- 10. Jackrabbit中的密碼加密
- 11. joomla中的密碼加密
- 12. 在VBA密碼框中加密密碼
- 13. 如何加密和解密的對象的ID與Spring MVC的
- 14. 加密密碼
- 15. 密碼加密
- 16. 加密密碼
- 17. 加密密碼
- 18. 加密密碼
- 19. 加密密碼
- 20. 密碼加密
- 21. 密碼加密
- 22. 密碼加密
- 23. 在spring-mvc上處理密碼確認
- 24. SPRING MVC數據和密碼驗證
- 25. 加密密碼的密碼長度
- 26. 在md5中加密密碼?
- 27. 加密郵件密碼
- 28. 未加密密碼的加密密碼用戶羣
- 29. 加密密碼以匹配存儲的加密密碼。
- 30. PHP - 解密加密密碼
如果您正在使用彈簧安全,你可以使用Spring Security密碼編碼器也可以和實現你自己的 –