Хеширование пароля более одного раза

Например, если я дважды хеширую пароль:

$psw1= password_hash($password,PASSWORD_DEFAULT);
$psw2=password_hash($psw1,PASSWORD_DEFAULT);

Это более безопасно или просто бесполезно?

PS: я новичок в php

2 ответа

Решение

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

password_hash($password, PASSWORD_DEFAULT, ['cost' => 12])

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

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

Я предлагаю использовать сильные хеш-функции, такие как sha512 или palemd320, поскольку не так много общедоступных баз данных, где хранятся хешированные пароли.

Если вы хотите узнать больше, я нашел старый вопрос о stackru с хорошими ответами: PHP, хэширующий пароль

Другие вопросы по тегам