想知道在存儲用戶信息(如密碼和什麼)時,將用戶名哈希存儲在數據庫中是否是一種好的做法。將密碼和信息存儲在數據庫中時用戶名應該散列嗎?
回答
加密/散列用戶名是一種矯枉過正的行爲。如果你擔心安全,只需使用SHA256與隨機salt哈希。
加密用戶名沒有意義,因爲您可能基於userName,部分userName進行搜索。加密只會讓搜索變得困難。
好吧,我的整個生活中,我一直在使用SHA256與鹽認爲它是最強大的。 Rein Henrichs對此帖的好評如下:SHA256 may not be the safest。你可能想要使用bcrypt,但我想這很慢。我會做一些概念驗證,如果速度很慢,那麼我會留下SAH256 +散列。
感謝您的鏈接。
沒有必要。只需使用哈希函數來設計暴力破解,就像bcrypt一樣。 SHA不足。
我同意你不應該散列用戶名,但我也不建議存儲「加密」密碼。始終使用安全的1路散列哈希密碼。我總是懷疑那些允許我取回密碼的網站,而不是強制重置,因爲這意味着某些管理員可以解密我的密碼。 – squawknull 2011-04-14 04:38:53
@squaknull對不起,哈希是我的意思。將解決我的答案。 – alex 2011-04-14 04:46:10
千萬不要以明文形式存儲密碼。但你不需要散列用戶名。
但我想你會使用這個用戶信息的某些服務器來允許客戶端登錄。如果密碼未從客戶端傳輸到服務器,則安全。在這種情況下,您可以使用某種單向散列來輸入密碼。如果您的客戶端和服務器都知道散列函數,則您的密碼永遠不需要通過線路連接。但是如果你想改變散列機制,就會出現問題。您的客戶端和服務器都需要更新。在這種情況下,客戶端必須協商使用哪種機制服務器。你最終會做一種spnego機制;)
- 1. 散列密碼時,我應該將散列函數名稱存儲在數據庫中嗎?
- 2. 2FA密碼應該散列存儲嗎?
- 3. 使用MD5和密碼散列函數在數據庫中存儲時
- 4. 應該加密數據base64編碼以將其存儲在數據庫中嗎?
- 5. 保存到數據庫之前應該散列哪些信息?
- 6. 將密碼和用戶名存儲在數據庫中;從PHP散列到SQL並返回
- 7. 我應該使用base64編碼在數據庫表中存儲密碼嗎?
- 8. 將信用卡信息臨時存儲在數據庫中
- 9. 如何在數據庫中存儲鹽漬散列密碼
- 10. 如何在數據庫中存儲散列密碼
- 11. c#驗證存儲在SQL數據庫中的散列密碼
- 12. 我可以在azure密鑰保管庫中存儲用戶名和密碼的詳細信息嗎?
- 13. 將用戶名和密碼存儲在單獨的數據庫中
- 14. 將選定的用戶信息存儲在數據庫中
- 15. 保存密碼/用戶名信息
- 16. 我可以存儲散列密碼嗎?
- 17. 在將數據存儲到數據庫之前,我應該過濾用戶密碼嗎?
- 18. 用用戶名和密碼信息
- 19. 如何最好地存儲用戶信息和用戶登錄名和密碼
- 20. 在web.config中保存敏感信息(用戶名和密碼)?
- 21. 在將用戶名和密碼插入數據庫時出錯
- 22. 在數據庫中散列密碼
- 23. 存儲用戶名和密碼,然後用戶想要檢索用戶信息,但密碼是加密的
- 24. 將匿名信息存儲在數據庫中
- 25. 我應該存儲關於數據庫中的數字記錄的信息嗎?
- 26. 將密碼存儲爲散列值時檢索密碼
- 27. 在數據庫中存儲用戶密碼/數據
- 28. 密碼salt應該存儲在數據庫的自己的字段中嗎?
- 29. 將信用卡信息存儲在數據庫中
- 30. 在哪裏存儲用戶的信息(個人信息,用戶名和密碼)在visual basic?
SHA不是一個足夠複雜的哈希函數,可以防止強力攻擊。見http://codahale.com/how-to-safely-store-a-password/ – 2011-04-14 04:47:08
謝謝!我想盡可能多,但我只是想,它不會要求 – mcbeav 2011-04-14 04:49:00
@all更新的答案。 – Nishant 2011-04-14 04:52:22