Сохранить новый пароль в базе данных после входа в систему

Может ли быть хорошей идеей «заново хешировать» пароль после каждого входа в систему и сохранять новый хеш в базе данных? Есть ли для этого плюсы и минусы с точки зрения современных стандартов безопасности?

Вот минимальный пример кода на PHP:

function login(string $username, string $password): bool {
// function arguments coming from $_POST
$user = User::findByUsername($username);
if($user) {
if(password_verify($password, $user->password)) {
// re-hash password ...
$user->password = password_hash($password, PASSWORD_DEFAULT);
//  ... and save it in database
$user->save();
return true;
}
}
return false;
}

-1

Решение

Перефразировка пароля после каждого успешного входа не повышает безопасность.

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

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

Таким образом, хотя перефразировка не ослабляет безопасность, она также никоим образом не помогает, но лучше использовать время для увеличения коэффициента затрат.

0

Другие решения

Нет необходимости перефразировать пароль вашего пользователя при каждом входе в систему. Это не улучшит вашу безопасность.

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector