Почему хеш полученный с бд не работает?

Суть такая: я отправляю данные на сервер в виде 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 и происходит та самая проверка без отправки в бд


Ответы (0 шт):