Я понимаю, что мне нужно md5 (password.salt), прежде чем сохранять его в базе данных. Но у меня есть любопытные вопросы: + Должен ли я также md5 содержание/текстовые строки (с паролем как соль)? Примеры: если база данных просочилась, злоумышленник не может прочитать содержимое закрытого форума + В случае, если я не должен использовать md5 и сохранить их в виде обычного текста, тогда какая проблема для злоумышленника, пытающегося получить userpassword когда у него есть база данных?какая информация должна быть хэш перед сохранением в базе данных?
ответ
Целью хеширования паролей является предотвращение доступа третьей стороны к вашей базе данных от изучения паролей пользователей. Содержимое вашей базы данных уже скомпрометировано, если они дошли до этого, поэтому содержимое форума уже открыто. Вы не хотите, чтобы пароли людей были скомпрометированы, потому что многие люди используют одни и те же пароли на нескольких веб-сайтах.
Если у вас есть безопасный форум, то вам необходимо предотвратить доступ злоумышленников к базе данных. Если они войдут, ваши сообщения на форуме будут опубликованы. Не беспокойтесь, пытаясь защитить их дальше. Идея заключается в том, что , если злоумышленник получает доступ к базе данных, вы ограничили площадь поверхности урона. Данные вашего сайта скомпрометированы, но, надеюсь, не являются учетными данными пользователей. Некоторые люди будут использовать имя и пароль своего банка на вашем веб-сайте, и именно это вы пытаетесь защитить.
Помните, что функции хеширования - это один из способов. Вы не можете использовать хэш-данные. Это хорошо для паролей: вам не нужно знать, что такое пароли пользователей, вам просто нужно их сравнить. Он не будет работать для сообщений на форуме. Хеширование - это не шифрование. Зашифрованные данные могут быть дешифрованы. Хешированные данные не могут быть хэшированы.
Спасибо! Понятно. – gaixixon
@gaixixon - И действительно рассматриваем использование BCrypt, этот [учебник] (http://www.martinstoeckli.ch/hash/en/index.php) описывает, почему вам нужна медленная функция вывода ключей, такая как BCrypt. Я использую PHP, вы можете использовать реализацию PHP для версии 5.5, доступен [пакет совместимости] (https://wiki.php.net/rfc/password_hash). – martinstoeckli
- 1. Какая информация должна быть предоставлена Java WebService
- 2. Шифровать пароль перед сохранением в базе данных?
- 3. Какая должна быть «модель»?
- 4. Итак, какая информация вообще должна быть записана в форме «О»?
- 5. Хэш пароль перед сохранением с Laravel Backpacker
- 6. Как проверить дубликаты перед сохранением данных в базе данных?
- 7. Какая информация должна/не должна отображаться в веб-приложении?
- 8. Прозрачно сжимать атрибуты перед сохранением в базе данных в Rails
- 9. Дата последнего изменения в Laravel перед сохранением в базе данных?
- 10. Разделите сценарии сценариев перед сохранением в базе данных в рельсах
- 11. Изменение записи перед сохранением в базе данных с использованием VB.net
- 12. Информация должна быть переправлена в другую тему
- 13. Какая информация googles admob должна показывать рекламу
- 14. Rails - обновлять вложенные атрибуты перед сохранением в базе данных
- 15. Какая модель должна быть выше?
- 16. Очистить данные строки перед сохранением в базе данных как целого
- 17. Зашифровать пароль в AngularJS перед сохранением в базе данных
- 18. Измените параметры формы перед сохранением в базе данных в Rails
- 19. Как создать фильтр в записях перед сохранением в базе данных?
- 20. Вручную проверять данные перед сохранением в базе данных SQL
- 21. Как настроить поле модели перед сохранением в базе данных
- 22. Как консолидировать данные перед сохранением в базе данных?
- 23. Как показать уникальное ключевое исключение перед сохранением в базе данных?
- 24. Как зашифровать TextField перед сохранением в базе данных
- 25. Master Detail - Как сохранить состояние перед сохранением в базе данных
- 26. регулярное выражение: изменение HTML перед сохранением в базе данных
- 27. google map какая информация для сохранения в базе данных
- 28. Получить идентификатор перед сохранением в базу данных
- 29. Редактировать данные перед сохранением в базу данных
- 30. java: Какая должна быть структура дизайна в моем кодировании
MD5 - * хэш * алгоритм, не * шифрование *. Если у вас есть «закрытый форум», который должен читаться только определенными людьми, тогда вам может потребоваться зашифровать содержимое с помощью чего-то вроде gpg с открытым ключом для всех, кто должен иметь возможность читать содержимое. Затем они могут расшифровать содержимое своим личным ключом (который они, конечно, не отправят). Это, вероятно, слишком много для всех, кроме самых безопасных приложений. –
Вы не должны md5 (password.salt). Вы должны использовать специальный алгоритм хэширования паролей, такой как bcrypt. md5 сломан и не должен считаться защищенным. Другие «простые» хэши, такие как SHA1 или SHA2, также не подходят для безопасного хранения паролей. –