В настоящее время говорят, что MD5 является частично небезопасным. Принимая это во внимание, я хотел бы знать, какой механизм использовать для защиты паролем.
Этот вопрос, Является ли "двойной хэширование" паролем менее безопасным, чем просто его хеширование? предполагает, что хеширование несколько раз может быть хорошей идеей, тогда как Как реализовать защиту паролем для отдельных файлов? предлагает использовать соль.
Я использую PHP. Я хочу безопасную и быструю систему шифрования паролей. Хеширование пароля в миллион раз может быть более безопасным, но также медленнее. Как достичь хорошего баланса между скоростью и безопасностью? Кроме того, я бы предпочел, чтобы результат имел постоянное количество символов.
- Механизм хэширования должен быть доступен в PHP
- Это должно быть безопасно
- Он может использовать соль (в этом случае, все соли одинаково хороши? Есть ли способ создать хорошие соли?)
Кроме того, следует ли хранить два поля в базе данных (например, с использованием MD5 и другого с использованием SHA)? Будет ли это сделать его более безопасным или бессовестным?
Если я не был достаточно ясен, я хочу знать, какие функции хеширования использовать и как выбрать хорошую соль, чтобы иметь безопасный и быстрый механизм защиты паролем.
Связанные вопросы, которые не совсем охватывают мой вопрос:
Какая разница между SHA и MD5 в PHP
Простой шифрование пароля
Защищенные методы хранения ключей, паролей для asp.net
Как бы вы реализовали соленые пароли в Tomcat 5.5