2010-09-01 130 views
5

好的。這清楚地表明必須在數據庫中存儲散列密碼,但是如果用戶不記得密碼並且想要取回密碼,那麼顯然用戶不希望具有散列密碼。如果密碼被md5散列或像salt和sha1那樣附加,那麼如何找回密碼。PHP解密密碼

+3

散列就像一臺絞肉機。你可以把牛變成碎牛肉,但是你不能把碎牛肉變成牛。 – 2013-10-30 22:21:53

回答

17

只有一個簡單的答案:你不能。

那麼,理論上你可以,但如果他們足夠長,可能需要多年的密碼。畢竟,這首先是哈希密碼的要點:使數據對攻擊者無效(或至少保護用戶的明文密碼,這是敏感數據)。

只需將網站發送給「更改密碼」電子郵件,其中包含指向該用戶可以更改其密碼的頁面的鏈接。這是大多數專業網站如何處理這種困境。

+6

這就是爲什麼大多數專業網站的密碼強度相當於您用來註冊的電子郵件帳戶的密碼強度! – 2010-09-01 06:16:20

+0

這是真的:)它仍然勝過這個安全問題。 – hb2pencil 2010-09-01 06:19:41

+1

http://tools.benramsey.com/md5/ md5散列反向工具。然而好的密碼可能不會存在於數據庫中。 – 2010-09-01 06:21:50

3

散列而不是加密密碼的安全性是您不能反轉散列。如果您可以解密密碼併爲用戶提供純文本密碼,那麼任何黑客都可以將您用於註冊和登錄的散列密碼反轉,並「解除」它以獲取用戶的密碼。
這是一個功能,而不是一個錯誤。

1

散列本身代表「無法取回」。

如果用戶不記得他們的密碼,他們確實不需要這個密碼。
只需創建另一個隨機發送。
沒什麼大不了的。

0

是的..可能忘記了他/她的密碼..使用散列密碼的好習慣是讓用戶鍵入想要重置密碼的帳戶的電子郵件地址,然後系統將重置用戶密碼與另一個生成的密碼。 MD5像散列密碼幾乎不可能從散列的密碼中檢索原始密碼

0

請務必小心可以通過電子郵件向您發送您使用的密碼的網站。這意味着任何有權訪問密碼數據庫的人都可以輕鬆地看到您的密碼,如果您重複使用密碼,這是特別危險的。

對於密碼重置,我建議您使用「安全問題」,同時加密的答案也是如此。

它應該讓所有經營網站的人保持合理的安全,防止黑客入侵。