Как проверить хешированный пароль на php?

Пользователь

от ottilie.farrell , в категории: PHP , 3 года назад

Как проверить хешированный пароль на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@carlo.cummerata В зависимости какой алгоритм хэширования Вы используйте и Вам нужно сравнивать не пароль а хэши этих паролей, посмотрите пример ниже md5() проверки и password_hash() функций в PHP:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php

$password = "test";

// Hash
$hash = md5($password);

if (md5("test") === $hash) {
    echo "Пароль верный";
}

// или если Вы используете password_hash
$hash = password_hash("test", PASSWORD_DEFAULT);

if (password_verify('test', $hash)) {
    echo 'Пароль вернуй!';
} else {
    echo 'Пароль не совпадает.';
}
Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от stanford_mosciski , 2 года назад

@ottilie.farrell 

В PHP для проверки хешированного пароля необходимо использовать функцию password_verify(). Она сравнивает переданный ей пароль с хешем пароля, сохраненным в базе данных.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Получаем хеш пароля из базы данных
$stored_hash = "hash из базы данных";

// Получаем пароль, введенный пользователем
$user_password = "пароль пользователя";

// Сравниваем пароль пользователя с хешем из базы данных
if (password_verify($user_password, $stored_hash)) {
    // Если пароль верный, выполняем нужные действия
    echo "Пароль верный!";
} else {
    // Если пароль неверный, выводим ошибку
    echo "Неверный пароль.";
}


Функция password_verify() автоматически определяет используемый алгоритм хеширования и соль, которые были использованы при создании хеша пароля.