Как я могу хешировать пароль и сохранить его для последующей проверки с помощью другого дайджеста?

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

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

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


person oxygen8    schedule 03.06.2010    source источник


Ответы (3)


Не сворачивайте свою собственную криптовалюту; используйте хорошо известную и принятую сообществом схему, такую ​​как PBES2 (как указано в PKCS#5 v2.1). Если вам повезет, вы найдете его готовую реализацию (подсказка: OpenSSL, вероятно, делает).

person crazyscot    schedule 03.06.2010
comment
Я пытался хешировать только часть пароля дайджеста (не учитывая одноразовый номер и время создания), используя базовый sha1. Моя мысль заключалась в том, что я мог бы быстро сверить хэш, отправленный клиентом, с сохраненным. Я не уверен, что смогу получить хэш пароля, отправленный клиентом, когда хэш состоит из пароля, одноразового номера и метки времени. - person oxygen8; 03.06.2010


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

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

person oxygen8    schedule 11.06.2010