
PHP | Хранение паролей
Хранить пароли пользователей в базе данных в открытом виде - очень плохая идея. Куда правильней будет хранить его хеш - строка, обычно определённой длины, характеризирующая пароль. Сгенерировать хеш можно, например, функциями
С пятой версии PHP появились встроенные методы хеширования паролей. Так, получить хеш пароля можно функцией
Пример использования
Хранить пароли пользователей в базе данных в открытом виде - очень плохая идея. Куда правильней будет хранить его хеш - строка, обычно определённой длины, характеризирующая пароль. Сгенерировать хеш можно, например, функциями
md5()
или sha1()
, но ввиду быстроты работы этих алгоритмов шифрования это так же не даст необходимой безопасности. Как же быть?С пятой версии PHP появились встроенные методы хеширования паролей. Так, получить хеш пароля можно функцией
password_hash('ПАРОЛЬ', PASSWORD_DEFAULT)
, его можно без опаски сохранить в базу данных. А проверить валидность пароля можно функцией password_verify('ПАРОЛЬ_ТРЕБУЮЩИЙ_ПРОВЕРКИ', 'ПОЛУЧЕННЫЙ_РАНЕЕ_ХЕШ')
.Пример использования
$pass = '8aZdYaB0';
$hash = password_hash($pass, PASSWORD_DEFAULT);
if (password_verify($pass, $hash)) {
echo ("Пароль верный");
} else {
echo ("Пароль неверный");
}
echo (", ");
if (password_verify('1s8', $hash)) {
echo ("Пароль верный");
} else {
echo ("Пароль неверный");
}