Расшифровка зашифрованных паролей с помощью 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