PHP сбросить пароль - PullRequest
       22

PHP сбросить пароль

0 голосов
/ 27 апреля 2019

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

if (count($_POST) > 0) {
    $result = mysqli_query($conn, "SELECT *from users WHERE id='" . $_SESSION["id"] . "'");
    $row = mysqli_fetch_array($result);
    if (MD5(mysqli_real_escape_string($_POST["currentPassword"] == $row["password"]))) {
        mysqli_query($conn, "UPDATE users set password='" . $_POST["newPassword"] . "' WHERE id='" . $_SESSION["id"] . "'");
        $message = "Password Changed";
    } else
        $message = "Current Password is not correct";
}

Ответы [ 3 ]

1 голос
/ 27 апреля 2019

для простого приложения вы можете использовать base64_encode () для шифрования и сохранения его в базе данных при вводе нового пароля. и для входа в систему также зашифруйте введенный пароль и сопоставьте его с базой данных.

ваш код:

if (count($_POST) > 0) 
{
$result = mysqli_query($conn, "SELECT *from users WHERE id='" .     $_SESSION["id"] . "'");
    $row = mysqli_fetch_array($result);
    $entered_password = base64_encode($_POST["currentPassword"]);
    $new_password = base64_encode($_POST["newPassword"]);
    $id =  $_SESSION["id"] ;
    if ($entered_password  == $row["password"]))) {

        $result = mysqli_query($conn, "UPDATE users set password='" . $new_password . "' WHERE id='" .$id. "'");
        $message = "Password Changed";
    } else
        $message = "Current Password is not correct";
}

это просто.

1 голос
/ 27 апреля 2019
//password encryption

$user_password = "1234";
$hash_pass = password_encryption($user_password, PASSWORD_BCRYPT, array('cost'=>10);

//"$user_password"-password obtained from the user input
//"$hash_pass" -encrypted password stored in a database

//verify the user password with that obtained from the database

if(password_verify($user_password, $hash_pass)){
     echo "password is valid";
}else{
     echo "password is not valid";
}

попробуйте это.

1 голос
/ 27 апреля 2019
    // password encryption for security.

$salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM);
$salt = base64_encode($salt);
$salt = str_replace('+', '.', $salt);
$hash = crypt($pass, '$2y$10$'.$salt.'$');

//echo ("".$hash."<br />\n");

$pass - пароль от ввода пароля

сохранить $hash в базе данных

проверить пароль, полученный из базы данных $hash

if(password_verify($pass, $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

обновите и попробуйте эту процедуру

...