Проблема с password_verify постоянно выводит false при вводе пароля

Прошу помощи не работает password_verify постоянно выдаёт echo "Пароль не совпадает";

            <?php
                require_once 'lib/db_connect.php';

                if (isset($_REQUEST['doGo'])) {
    
                    if (!$_REQUEST['login']) {
                        $error = 'Введите логин';
                    }
                    // Проверяет пароль
                    if (!$_REQUEST['pass']) {
                        $error = 'Введите пароль';
                    }

                    if (!$error) {
                        $login = $_REQUEST['login'];
                        $pass = $_REQUEST['pass'];

                        if ($result = mysqli_query($link, "SELECT `passwd`, `id сотрудника` FROM `сотрудники` WHERE `login`='" . $login . "'")) {
                            while( $row = mysqli_fetch_assoc($result) ){ 
                                if ($row['id сотрудника']) {
                                    if (password_verify($pass, $result['passwd'])) {
                                        echo "Вы вошли";
                                        exit;
                                    } else {
                                        echo "Пароль не совпадает";
                                    }
                                } else {
                                    echo "Введён неверный логин";
                                }
                            } 
                        }
                    } else {
                        echo $error;
                    }
                }
            ?>

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

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


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

Автор решения: Crasher

Потому что почитайте внимательно описание функции password_verify. В мануале написано, что она проверяет, соответствует ли пароль хешу. А вы в качестве параметров подсовываете сырые пароли, естественно она возвращает false. В вашем случае будет просто if ($pass == result['passwd'])

Но хранить пароли в открытом виде - очень плохая практика. Как минимум можно хранить md5 хэши паролей

→ Ссылка