Войти в хэширование ввода пользователя

Я не большой программист на PHP, но я пытаюсь понять, как читать хешированный пароль, когда пользователь заходит на сайт. Я сохранил хешированный пароль со следующим PHP:

     $pass = mysql_real_escape_string($_POST['pass']);

$key = $pass;
$string = $pass;

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

mysql_select_db("db", $con);

$sql="INSERT INTO members_tbl (email, pass, registration_date)
VALUES ('$email','$encrypted', now())";

Я не уверен, как читать то, что пользователь ввел, и проверять, совпадает ли оно с дешифрованной переменной, и если true, войдите в них. Вот моя попытка:

//Sanitize the POST values
$signin_email = clean($_POST['signin_email']);
$signin_pass = clean($_POST['signin_pass']);

//Input Validations
if($signin_email == '') {
$errmsg_arr[] = 'Username missing';
$errflag = true;
}
if($signin_pass == '') {
$errmsg_arr[] = 'Password missing';
$errflag = true;
}

//If there are input validations, redirect back to the login form
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}

$pass = $signin_pass;

$key = $pass;
$string = $pass;

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

//Create query
$qry = "SELECT * FROM members_tbl WHERE email='$signin_email' AND pass='$decrypted'";

//do something

-2

Решение

Просто сравните хешированный пароль в базе данных с хешированным паролем, который вы создаете в userlogin, если они совпадают, то это совпадение.

-2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]