Рейтинг:0

pgcrypto и хеширование паролей

флаг tk

Я думаю о своем выборе относительно того, как хранить пароли в Postgres.

Одним из таких вариантов является использование pgcrypto. Читая их документы, я вижу, что их склеп и gen_salt функции не используют sha256, а вместо этого используют пользовательскую версию криптографически взломанного мд5. Зачем разработчикам Postgres использовать такой алгоритм хеширования для своего модуля хранения паролей, если он небезопасен?

Я полагаю, мне следует использовать вместо сломанного (по крайней мере, в моих глазах) модуля pgcrypto модуль встроенная бинарная функция ша256 вместе со случайной солью.

Рейтинг:0
флаг cn

Используйте хороший хэш пароля, который замедляет угадывание. Если вы предпочитаете сохранять pgcrypto его лучший crypt() в настоящее время bf, он же bcrypt на основе Blowfish.

Или выберите альтернативу, которая известен криптографам и имеет хорошо протестированные реализации. Обратите внимание, что это может быть в коде приложения. crypt() как функция СУБД удобна, но не обязательна.

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

Устаревшие алгоритмы md5 и des существуют потому, что PostgreSQL устарел. Хеши паролей все еще существуют где-то в таблицах, еще не обновленные, потому что их пользователи не входили в систему уже много лет.

Я полагаю, я должен использовать вместо сломанного (по крайней мере, в моих глазах) модуль pgcrypto, встроенная бинарная функция sha256 вместе с случайная соль.

Не применяйте собственный алгоритм хеширования паролей. sha256 — это быстрый хеш, противоположный тому, что нужно паролю.

Ответить или комментировать

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