Я разговаривал с моим другом, и он заявил, что для хранения пользовательских паролей в базе данных он и я цитируем:
- Принимает пароль пользователя
- Хэши со случайной солью
- Затем он добавляет префикс результата # 2 к типу хеша и соли, соединяя их со строкой, разделенной символом трубы. (например, SHA1 | RANDOMSALT | afde4343 ....)
- Сохраняет результат # 3 в БД
Он утверждает, что это читабельно, поскольку он "может мгновенно узнать", какой тип хэш-дайджеста используется.
Я не думаю, что когда-либо видел это раньше, но я ищу причины того, почему это было бы плохо, помимо факта, что неавторизованный пользователь может мгновенно узнать, какой тип хэша используется для шифрования пароли и дополнительное место, необходимое для хранения поля.
Моя внутренняя реакция заключается в том, что такой подход к работе с паролями глуп, поскольку любые признаки, помогающие злоумышленнику взломать пароли, являются слабым местом. Какие еще причины я должен использовать, чтобы убедить его, что это плохая идея?
Спасибо!