Я пытаюсь внедрить более сильный механизм хэширования/хранения пароля и выбирать самый простой подход: password_hash() и password_verify().Определите, был ли пароль ранее использован при реализации случайных солей
Я разрешаю PHP генерировать случайную соль, как рекомендовано, и все это имеет смысл. Кроме того, часть политики «надежного пароля», которую мне нужно реализовать, заключается в том, чтобы отклонить пользователя от повторного использования ранее использованного пароля. Теоретически я мог бы реализовать это, сохранив архив хешированных паролей. Когда пользователь меняет свой пароль, мы проверяем новый хэш на архив хешей. Если есть совпадение, мы знаем, что пароль был ранее использован и отклонил его. Однако внедрение случайной соли, в то время как значительно более безопасное, эффективно делает этот хеш-пароль для архива бесполезным.
Итак, мой вопрос заключается в том, как реализовать эту политику паролей при использовании случайных солей? Конечно, кто-то другой столкнулся с этой проблемой.
Почему бы не сохранить случайную соль вместе с сгенерированным паролем в базе данных, чтобы вы могли проверить его на соответствие в будущем? – Maximus2012
Моя мысль заключается в том, что если мы храним случайную соль с каждым хэшированным паролем в архиве, тогда нам придется повторно использовать новый пароль (при попытке изменения) по отношению к каждой записи в таблице архива, чтобы узнать, совпадает ли он. В качестве альтернативы, если мы храним архивные хеши со статической солью, разве это не создало бы слабую точку? –
Feck, просто сохраните простой текстовый пароль :-) –