«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как безопасно проверить пароли пользователей с помощью функции PHPpassword_verify?

Как безопасно проверить пароли пользователей с помощью функции PHPpassword_verify?

Опубликовано 5 ноября 2024 г.
Просматривать:124

How to Verify User Passwords Securely with PHP\'s password_verify Function?

Расшифровка зашифрованных паролей с помощью PHP

Многие приложения надежно хранят пароли пользователей, используя такие алгоритмы шифрования, как пароль_hash. Однако при проверке попыток входа в систему важно сравнивать входной пароль с зашифрованной сохраненной версией.

Проблема шифрования

password_hash использует Bcrypt, единый алгоритм шифрования. алгоритм хеширования, означающий, что зашифрованный пароль не может быть отменен или расшифрован. Это функция безопасности, которая гарантирует, что даже в случае взлома базы данных злоумышленники не смогут получить доступ к открытым текстовым паролям.

Решение: проверка пароля

Для проверки паролей пользователей , используйте функцию pass_verify:

if (password_verify('input_password', $encrypted_password)) {
    // Password matches!
} else {
    // Invalid password.
}

Эта функция сравнивает входной пароль с зашифрованной версией и возвращает значение true, если они совпадают.

Изменение вашего SQL-запроса

Вместо включения введите пароль в SQL-запрос, используйте параметризацию:

$sql_script = 'SELECT * FROM USERS WHERE username=?';

Это защищает от атак SQL-инъекций, не позволяя злонамеренным пользователям манипулирование вашим запросом.

Пример

Вот пример использования пароля_verify:

$username = $_POST['username'];
$input_password = $_POST['password'];

$sql_script = 'SELECT * FROM USERS WHERE username=?';

if ($result = $conn->query($sql_script, $username)) {
    if ($user = $result->fetch_assoc()) {
        if (password_verify($input_password, $user['password'])) {
            // Login successful!
        } else {
            // Invalid password.
        }
    } else {
        // User not found.
    }
}
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3