我目前使用MD5加密在數據庫中存儲密碼。我們之前沒有密碼重置功能。但現在我們正在實施它。所以我無法解密MD5並將密碼發送給用戶。但是我可以做,如果它是在base64加密。現在我有點困惑,這是最好的加密方法。
我已經做了強密碼的客戶端驗證(如8字符長度,特殊字符等)。哪個是最好的加密方法base 64或MD5?
回答
Base 64不是一種加密機制,它是一種編碼方案。它很容易顛倒過來,所以它不是保護關鍵數據的好選擇。
密碼的常用方法是用MD5對它們進行哈希處理,然後存儲哈希。當用戶再次登錄時,對輸入密碼進行散列,並將其與存儲的散列進行比較。
如果用戶忘記了他的密碼,那麼您應該無法告訴他它是什麼。相反,讓他把它重置爲其他東西(大概他能記得的東西)。
此外,正如@Phil Brown提到的,MD5 is not considered a strong encryption mechanism。 SHA-1將更適合完成這項任務。
Base 64編碼通常用於通過僅允許ASCII文本的機制傳輸二進制數據。
Base64不是加密,它是一種容易可逆的編碼機制。 MD5是單向加密哈希,儘管它使用is not recommended because it is cryptographically weak。
爲了您的需要,您可能需要存儲密碼的散列(更適合salt),可能使用SHA-256或更高版本。當用戶忘記密碼時,您會爲它們生成一個隨機的一次性密碼,並強制它們重新創建密碼,或者在驗證某些憑證後讓它們執行密碼。
Base64和MD5是沒有加密方法。 Base64只是一種編碼字符的方式,它絕對不提供安全性 - 它與以純文本形式存儲密碼一樣好。 MD5是一個散列函數,這意味着它是單向的並且不能被解密。
哈希值肯定是要走的路。 MD5沒問題,但你應該切換到更安全的功能,如SHA-256。
至於「忘記密碼」功能,從不存儲用戶的密碼並將其發回給他們。相反,爲他們生成(隨機)臨時密碼,以便他們可以登錄並更改密碼。
最佳做法是使用MD5存儲密碼哈希,就像您現在(或甚至更好的SHA256)一樣。
不要做密碼恢復。相反,當用戶忘記密碼時,請創建一個新的隨機密碼並將其發送給他們。然後他們可以登錄並將密碼設置爲他們喜歡的東西。更安全。
- 1. 最好的加密方法
- 2. 哪個是c#中最好的加密和解密算法?
- 3. 哪個組織國際資源密鑰最好的方法是?
- 4. 這是一個更好的XML屬性:base = 64或encoding = base64
- 5. 哪一個是最好的方法Const或Resources(resx)
- 6. 哪個更好的方法來加密和解密數據?
- 7. 哪個更好NEWID或加密ID?
- 8. 2加密/散列的情況下,哪一個是最好
- 9. java中最好的多部分base 64編碼器是什麼?
- 10. 哪個是比較兩個網址的最好和最快的方法?
- 11. 哪種安全MAVLink協議是最好的加密算法?
- 12. 記錄哪個是最好的方式
- 13. 哪個是最好的和/或最有效的殺死線程的方法
- 14. 哪種方法最好加入mysql表?
- 15. 最好的方法來存儲敏感數據php加密
- 16. 比MD5更好的方法?
- 17. 如何最好地使用確認代碼的加密方法
- 18. 哪個編寫scala方法最好?
- 19. 哪個最好Copyto()或Clone()?
- 20. 哪種方法最好?
- 21. java哪種方法最好?
- 22. 哪個地方最好?
- 23. 管理加密密鑰的好方法?
- 24. 哪個是更新c中文件記錄的最好方法?
- 25. 哪一個是最好的Flash H.264 HTTP Streaming方法?
- 26. 哪裏是最好的地方存儲網站的密碼salt?
- 27. 哪一個是最好的方法調用所需的servlet
- 28. 如何加密IOS中的sqlite文件,哪一個是好方法?
- 29. Base 64和AES base 64是一樣的嗎?
- 30. 哪個最好:runonuithread或asynctask android方法:線程?
請閱讀此前的問題+答案:http://stackoverflow.com/questions/2780198/phphow-to-send-the-original-password-to-the-user-when-he-clicks-forgot-password – Amber 2010-10-22 04:49:42
不要在客戶端進行驗證,除非您確認該驗證被破壞。如果某人在某個時候寫了一個備用客戶端,那麼你不希望他們在你的安全性中挖洞。你也可以在客戶端進行檢查,但這只是爲了避免往返。 – 2010-10-22 04:52:48
Md5哈希不像以前那樣安全,至少使用sha1,而sha256(從我所知道的)是足夠安全的。 – Joakim 2010-10-22 04:53:04