С оговоркой, что, хотя я написал системы учетных записей пользователей и использовал безопасные хеш-функции, я не какой-то «эксперт», но для тех, кто пришел к этому вопросу, интересует, действительно ли вам нужно пройти через проблема использования безопасного хэша для хранения пароля: да, вы делаете.
Кроме того, если вы все еще не уверены, и вам не очень удобно понимать, как работают эти методы хеширования и как они поддерживают модель безопасности, то вы должны быть честны в этом с кем бы вы ни работали. потому что делать обеспечительное право сложно и требует опыта и проверки со стороны знающих коллег.
В любом случае, как упоминалось в комментариях, безопасный хэш, предназначенный для хранения паролей (например, bcrypt
или scrypt
), имеет API, который обрабатывает всю грязную работу. Я более знаком с scrypt
, но они похожи. Хешированный пароль выглядит как строка случайных символов, но в начале строки находятся две отдельные части, которые содержат случайную соль и параметры хеш-функции.
Поскольку безопасный хеш для хранения паролей всегда будет хэшировать пароль любой длины и превращать его в хешированную строку некоторого фиксированного размера, нет веских оснований ограничивать пароли пользователей любой длиной (отличной от 1000 символов только для избежания DOS-атаки).