Почему хэшируется по разному в двух файлах? 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
