Почему хеш полученный с бд не работает?
Суть такая: я отправляю данные на сервер в виде email, passHash(захешированный с помощью password_hash) и т.д, но суть в том что если я попробую проверить два одинаковых пароля (разница между которыми только в том что один захешированный, а другой нет) через password_verify() то получу ответ false (проверял через var_dumb()), но если я просто возьму пароль из формы и захеширую его без отправки в бд, то всё магическим образом начинает работать. Уже несколько часов сижу и не понимаю почему так (и да, поле в бд с passHash varchar(255)), ведь я получаю одинаковой длинны хеш с одинаковым типом данных и один работает, а другой нет. Ниже будет приложен код регистрации и авторизации
reg.php
<?php
require '../db.php';
$lastNameUser = '@' . stristr($_POST['email'], '@', true);
$md5Password = password_hash($_POST['password'], PASSWORD_BCRYPT); // password_verefiry() разхеширование
$NewUserData = [
'UserFirstname' => $_POST['firstname'],
'UserLastname' => $lastNameUser,
'UserPassword' => $md5Password,
'UserEmail' => $_POST['email'],
'UserCodeWord' => $_POST['codeWord']
];
$newUserRequest = $DBC->prepare('INSERT INTO `users`
(firstname, lastname, email, passHash, codeWord) VALUES
(:UserFirstname, :UserLastname, :UserEmail, :UserPassword, :UserCodeWord)');
$newUserRequest->execute(array(
'UserFirstname' => $NewUserData['UserFirstname'],
'UserLastname' => $NewUserData['UserLastname'],
'UserEmail' => $NewUserData['UserEmail'],
'UserPassword' => $NewUserData['UserPassword'],
'UserCodeWord' => $NewUserData['UserCodeWord'],
));
?>
auth.php
<?php
session_start();
require '../db.php';
$AuthUserData = [
'authEmail' => trim($_POST['authEmail']),
'authPass' => trim($_POST['authPass']),
'authCodeWord' => $_POST['authCodeWord']
];
$AuthUserEmail = $AuthUserData['authEmail'];
$authUserRequest = $DBC->query("SELECT * FROM `users` WHERE `email` = '$AuthUserEmail'");
$countAuthUser = $authUserRequest->rowCount();
$authUser = $authUserRequest->fetch();
var_dump($authUser);
if ($countAuthUser > 0 && password_verify($AuthUserData['authPass'], $authUser['passHash'])) {
echo 'Авторизация прошла успешно!';
$_SESSION = [
$authUser
];
} else {
$hash = password_hash($AuthUserData['authPass'], PASSWORD_DEFAULT);
var_dump($hash);
var_dump(password_verify($AuthUserData["authPass"], $hash));
}
?>
В файле auth.php в else и происходит та самая проверка без отправки в бд