Почему хэшируется по разному в двух файлах? Password_verify

Вот так хэшируется и попападет в базу mysql в регистрации

$name = $_POST['name'];
$lastName = $_POST['lastname'];
$login = $_POST['login'];
$password = $_POST['password'];

$login=mb_strtolower($login);

$name=trim($name);
$lastName=trim($lastname);
$login=trim($login);
$password=trim($password);

$password=password_hash(password, PASSWORD_BCRYPT, array(12));

$name= htmlspecialchars($name);
$lastname=htmlspecialchars($lastname);
$login=htmlspecialchars($login);
//mysql_select_db('makinson_h',$mysqli);

$result=$mysqli->query("SELECT * FROM `REG` WHERE `login` = '$login'");
$result=$result->fetch_assoc();
if(!empty($result)) exit ("2"); /*Такой пользователь уже есть*/

$mysqli->query("INSERT INTO `REG`(`name`, `lastname`, `login`, `password`) VALUES ('$name', '$lastname', '$login', '$password')");
exit("1");/*Success*/

дальше при авторизации с Password_verify получаются разнные хэши к одному паролю

$login=$_POST['login'];
    $password=$_POST['password'];
    $login=trim($login);
    $password=trim($password);
    $login=mb_strtolower($login);
    
    
  //  $login=htmlspecialchars($login);
   // mysql_select_db('makinson_h',$mysqli);
 $result=$mysqli->query("SELECT * FROM `REG` WHERE `login`='$login'");/*обьект*/
    $result=$result->fetch_assoc();/*массив*/
 $hash = $result['password'];
 
   if(password_verify($password,$hash))   {
    echo 'Пароль правильный!';
} else {
    echo 'Пароль неправильный.';
}
 

Вот так выгладят хэши одного и того же пароля в вардампе введите сюда описание изображения

введите сюда описание изображения

почему??? Где исправить?


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

Автор решения: Владлен Вожжаев

У вас две опечатки в функции password_hash, первый аргумент вы кладёте password, а необходимо давать переменную $password, и указание стоимости хеша делается вот так array('cost'=>12).

$password=password_hash($password, PASSWORD_BCRYPT, array('cost'=>12));

Дополнительная информация https://www.php.net/manual/ru/function.password-hash.php

→ Ссылка