У меня, может быть, litle глупо спросить ... Я делаю забытый сценарий пароля (конечно, для системы входа), но я застрял. Я создал код (он работает, да!) Со специальным идентификатором, но я не могу его расшифровать ... Можете ли вы мне помочь?Сценарий забытого пароля с PDO (требуется дешифрование)
Вот моя функция создания специального ID:
Recovery_Script.php
<?php
include "pdo.php"; if(isset($_POST["submit"]) AND isset($_POST["ForgotPassword"])) {
$email = $_POST["ForgotPassword"];
// Check to see if a user exists with this e-mail
$sql = "SELECT email FROM account WHERE email=:email";
$stmt = $db->prepare($sql);
$stmt->execute(array(":email"=>$email));
$items = $stmt->fetchAll();
$db = null;
foreach($items as $data){
if($data["email"] == $email){
// Create a unique salt. This will never leave PHP unencrypted.
$salt = "498#2D83B631%3800EBD!801600D*7E3CC13";
// Create the unique user password reset key
$password = hash('sha256', $salt.$email);
// Create a url which we will direct them to reset their password
$pwrurl = "http://student.sps-prosek.cz/~kocvaja14/Project/SelfMade/templates/script/recovery_password.php?q=".$password;
// Mail them their key
$mailbody = "Dobrý den,\n\nJestli tento email nepatří vám, prosím, ignorujte jej. Byla vytvořena žádost o obnovení hesla na webové stránce http://student.sps-prosek.cz/~kocvaja14/SelfMade/\n\nPro obnovení hesla klikněte na odkaz níže. \n\nThanks,\nThe Administration";
mail($email, "http://student.sps-prosek.cz/~kocvaja14/Project/SelfMade/index.php - Password Reset", $mailbody);
echo "Your password recovery key has been sent to your e-mail address.";
} else
echo "No user with that e-mail address exists.";
} }?>
А теперь мне нужно создать файл, где я расшифрует этот идентификатор ($ пароль). Но я не могу этого сделать (потому что у меня мало знаний об этом). Можете ли вы мне помочь? Спасибо !
Объясните * «но я не могу его расшифровать» * для нас пожалуйста. Кстати, хеши односторонние, если вы хотите построить корову из молотого мяса. –
Шаш-файл hash _cannot_ будет расшифрован. Это односторонний хеш, а не обратимо зашифрованная строка. Хэши производят одну и ту же строку хэша для данного входа, поэтому используются для сравнения, если входная строка, когда хешируется с тем же алгоритмом, соответствует хешу, который вы сохранили. –
* Конечно * вы не можете «расшифровать» хешированный пароль. В этом-то и дело*. Разрешить пользователю сбрасывать пароль, но вы никогда не сможете его восстановить. – David