要直接回答你的問題,你可以通過這種方式發送用戶的「初始密碼」(假設MD5--不管你使用什麼哈希算法,邏輯都是一樣的)。
$seed_password = $_POST['initial_password']; // Save the user's selected password to this variable.
$hash_password = md5($seed_password); // This variable will now hold your hashed password.
// Save the $hash_password to the database.
# YOUR CODE HERE
// Email the Seed Password (in the simplest manner possible).
mail('[email protected]' , 'Your new password' , 'Your new password is '. $seed_password);
這將在散列前通過電子郵件發送密碼的值。同時,散列密碼將存儲在您的數據庫中。
現在 - 當你的用戶登錄時,你將不得不採取他們輸入的密碼,並在之前對它進行散列,將與數據庫中的散列值進行比較。
這是哈希的點,明文是**不可**恢復。但是由於您仍然使用MD5,因此任何'MD5 aabbcc ... nn'谷歌將很可能爲您找到相同的密碼;-) –
1. MD5已經過時了一段時間。你爲什麼使用它? 2. MD5是一種哈希算法。這意味着它是*單向*。你無法取回它。 3.反轉密碼是一種不好的做法。讓用戶重置他們的密碼。 –
你絕對不想在周圍發送密碼。 –