Учитывая, что пароли обычно не нужно проверять / хэшировать / как угодно часто (они есть, когда кто-то входит в систему и регистрируется; но это почти так) , скорость, как правило, не очень беспокойство: , что имеет значение безопасность .
Что обычно делается:
- когда пользователь регистрируется, он вводит свой (новый) пароль
- этот пароль соленый + хешируется, а результат сохраняется в базе данных
- Затем, когда пользователь хочет войти в систему, он вводит свой пароль
- То, что набрано, засолено + хешировано, и сравнивается со значением, хранящимся в базе данных.
Основной ключ : никогда не храните реальный пароль в БД - только его хеш; и посолите его перед рукой, чтобы избежать атак радужных столов .
И, кажется, это уже то, что ты делаешь - так хорошо для тебя; -)
Какую функцию хеширования следует использовать? Ну, sha1 часто считается нормальным; md5 теперь не в порядке; Я думаю, что sha512 должно быть больше, чем ОК.