Всем привет, изучаю PDO есть регистрация, пароль хешируется через password_hash Как правильно теперь расшифровать его через password_veryfi, точнее как вставить 2ым параметром зашифрованный пароль из бд
php
$stat = $dbconn->prepare('SELECT id FROM users WHERE (user_name = :user_name OR email = :user_name) AND password = :password'); $stat->execute([ 'user_name' => $_POST['user_name'], 'password' => password_verify($_POST['password'], ???????) ]); $id = $stat -> fetchColumn(); if(!empty($id)){ $_SESSION['user_id'] = $id; die("Вы успешно авторизировались"); } else { $errors[] = 'Вы не правильно ввели логин или пароль'; }
public function hashing($var, $hash = false) { if (!$hash) return password_hash($var, PASSWORD_BCRYPT); else return (password_verify($var, $hash)) ? true : false; }
Вот тебе простая функция. Загоняешь один параметр - получаешь хеш, в случае с crypt() длина хеша будет 60. Если передаешь два параметра: первый это указанный пароль, второй - хеш. Его вытаскиваешь из базы, выборка по мыло или логину, как там у тебя сделано, и тупо сравниваешь.