2012-01-02 26 views
1

我想爲表用戶創建一個可由外鍵調用的密碼錶,以便他們可以輸入他們的密碼,並將其放置在表格中並安全地進行編寫。我聽說過用散列加密它;我找遍了所有周圍,但不知道如何使用它比我在這個視頻http://www.sqlshare.com/Player.aspx?vid=626&plid=&searchid=177388試圖製作一個可以爲安全性加密的Mysql密碼錶,然後在用戶需要重置被遺忘的密碼時重置

任何幫助,將不勝感激

回答

3

總之,你使用單向散列如SHA1或MD5看到別的將密碼變成一段文字。這不能撤消。您將散列存儲在數據庫中。

當用戶輸入他們的密碼時,你用相同的方式散列他們的密碼,然後檢查它是否在你的數據庫中。

如果他們想重置密碼,那麼您會創建一些相當長的隨機字符串,然後通過向您註冊的帳戶發送電子郵件給他們。他們將該字符串的鏈接作爲GET參數。你檢查它是否是正確的字符串,如果是的話,請求一個新的密碼,對它進行散列並存儲在數據庫中。

爲了安全地工作,您應該閱讀md5,sha1和salting哈希。

+0

+1不錯的總結。一些簡單的問題 - 1)是否(/'可以')給每個人發送同樣的'重置'密碼? 2)是否'重置'密碼本身散列?大概不會,並且在哈希和比較之前檢查它的值。爲了清晰起見,添加會很好。 :) – 2012-01-02 20:50:48

+0

您希望生成(並存儲在數據庫中)唯一的重置密碼,否則您可以重置其他人的帳戶。是的,你想要散列它。 – ceejayoz 2012-01-02 21:41:59

0

裏克說什麼是現貨,顯然有更多的方法來驗證用戶,以改變密碼,而不是「一些隨機字符串很長」。

如果您想了解更多關於單向散列和一個例子來工作,通過,我會建議在看看這本書:既具有快速腳本倍 WickedCoolPHP

它已經幫助了無數的數從更好地理解PHP開始工作。

+0

非常感謝您的幫助我會研究它Rick的答案是合乎邏輯的,並且非常有意義知道我只需要弄清楚如何在代碼中實現它。希望這本書可以幫助,雖然不是在PHP上我做的是sql – 2012-01-02 21:12:47

+0

您使用PHP編碼來執行您的SQL數據庫中的數據的許多任務。 在將數據插入數據庫之前,您還可以使用php來檢查數據是否符合特定標準,以避免令人討厭的SQL注入攻擊。 本書的前兩章對此進行了解釋。 我可以向你保證,這本書將成爲你最好的朋友,至少在未來幾個月;) – Beyerz 2012-01-03 08:45:39

+0

酷謝謝,我一定會看看它,然後 – 2012-01-03 13:20:26