2013-03-03 122 views
1

根據這個其他職位,我需要:如何電子郵件用戶新的鏈接,創建一個密碼

PHP password recovery 你不「恢復」密碼。你做什麼是2件事之一。

  1. 通過電子郵件向用戶發送鏈接以創建新密碼,覆蓋當前密碼。
  2. 給用戶發送一個隨機生成的密碼,然後要求他們改變它。

我已經咬掉了一個巨大的項目,我拼命地要求工作的例子,或至少你如何做到這一點的最佳建議;例如:#1電子郵件用戶鏈接創建一個新密碼,覆蓋當前密碼。我被告知db有密碼salting,並使用Blowfish。我真的不知道這到底意味着什麼,我正在通過代碼來試圖找出如何添加「重置密碼?」。鏈接到他們當前的登錄頁面。

然後,如果你是這麼傾向,你可以協助如何給用戶發送一個隨機生成的pw,然後讓他們改變它[上面的#2?

這些任務是一樣的,我不知道到目前爲止提供什麼代碼;我希望有人這樣做可以告訴我什麼可行,我會盡力實施它。我感謝您的幫助!

+0

維基百科有一個頁面解釋密碼salting:http://en.wikipedia.org/wiki/Salt_(cryptography) – 2013-03-03 21:47:51

+0

不確定任何人都可以幫助你,如果你不知道什麼是鹽分或如何識別那種使用散列法或鹽如何應用。你必須閱讀代碼,看看它是如何應用的,或者這裏給出的任何例子對你來說都沒用。 – scartag 2013-03-03 21:48:30

+2

你說你已經完成了一個巨大的項目,但根據你的要求,這聽起來更像是你註冊了一個你不合格的項目。您嘗試完成的工作是,如果犯了一個小錯誤,可能會使網站面臨巨大的安全問題。爲什麼不把你的名聲幫忙,並且讓你同意爲你工作的人去做,並優雅地走開,直到你有資格。 – mah 2013-03-03 21:56:28

回答

4

的常用方法來生成密碼重置是這樣的:

  1. 檢查電子郵件地址屬於一個註冊用戶。
  2. 生成隨機不可預知的代碼。
  3. 將此代碼散列在數據庫中,以及用戶標識和過期日期。
  4. 發送帶有此代碼的鏈接到指定的電子郵件地址,因此只有該用戶本身才能看到此鏈接。
  5. 當用戶單擊鏈接時,提取代碼並檢查其散列是否在數據庫中。
  6. 如果它在數據庫中並且沒有過期,您就知道用戶標識,並且您可以允許用戶輸入新密碼(不要向用戶發送自己生成的密碼)。
  7. 將代碼標記爲已使用或將其從數據庫中刪除。

我希望這可以給你一個必要的步驟的想法。如果你想了解更多關於BCrypt和salting的信息,你可以看看這個tutorial關於哈希密碼。

+0

我正在與公司總裁密切合作,不會產生未經他絕對審查的代碼。非常感謝警告和想法。 – dcparham 2013-03-05 03:31:50

相關問題