2012-11-28 2 views
0

Я понимаю, что мне нужно md5 (password.salt), прежде чем сохранять его в базе данных. Но у меня есть любопытные вопросы: + Должен ли я также md5 содержание/текстовые строки (с паролем как соль)? Примеры: если база данных просочилась, злоумышленник не может прочитать содержимое закрытого форума + В случае, если я не должен использовать md5 и сохранить их в виде обычного текста, тогда какая проблема для злоумышленника, пытающегося получить userpassword когда у него есть база данных?какая информация должна быть хэш перед сохранением в базе данных?

+0

MD5 - * хэш * алгоритм, не * шифрование *. Если у вас есть «закрытый форум», который должен читаться только определенными людьми, тогда вам может потребоваться зашифровать содержимое с помощью чего-то вроде gpg с открытым ключом для всех, кто должен иметь возможность читать содержимое. Затем они могут расшифровать содержимое своим личным ключом (который они, конечно, не отправят). Это, вероятно, слишком много для всех, кроме самых безопасных приложений. –

+1

Вы не должны md5 (password.salt). Вы должны использовать специальный алгоритм хэширования паролей, такой как bcrypt. md5 сломан и не должен считаться защищенным. Другие «простые» хэши, такие как SHA1 или SHA2, также не подходят для безопасного хранения паролей. –

ответ

1

Целью хеширования паролей является предотвращение доступа третьей стороны к вашей базе данных от изучения паролей пользователей. Содержимое вашей базы данных уже скомпрометировано, если они дошли до этого, поэтому содержимое форума уже открыто. Вы не хотите, чтобы пароли людей были скомпрометированы, потому что многие люди используют одни и те же пароли на нескольких веб-сайтах.

Если у вас есть безопасный форум, то вам необходимо предотвратить доступ злоумышленников к базе данных. Если они войдут, ваши сообщения на форуме будут опубликованы. Не беспокойтесь, пытаясь защитить их дальше. Идея заключается в том, что , если злоумышленник получает доступ к базе данных, вы ограничили площадь поверхности урона. Данные вашего сайта скомпрометированы, но, надеюсь, не являются учетными данными пользователей. Некоторые люди будут использовать имя и пароль своего банка на вашем веб-сайте, и именно это вы пытаетесь защитить.

Помните, что функции хеширования - это один из способов. Вы не можете использовать хэш-данные. Это хорошо для паролей: вам не нужно знать, что такое пароли пользователей, вам просто нужно их сравнить. Он не будет работать для сообщений на форуме. Хеширование - это не шифрование. Зашифрованные данные могут быть дешифрованы. Хешированные данные не могут быть хэшированы.

+0

Спасибо! Понятно. – gaixixon

+0

@gaixixon - И действительно рассматриваем использование BCrypt, этот [учебник] (http://www.martinstoeckli.ch/hash/en/index.php) описывает, почему вам нужна медленная функция вывода ключей, такая как BCrypt. Я использую PHP, вы можете использовать реализацию PHP для версии 5.5, доступен [пакет совместимости] (https://wiki.php.net/rfc/password_hash). – martinstoeckli

Смежные вопросы