2013-07-09 3 views
1

Я использую PHP. Я хочу безопасную и быструю систему шифрования паролей. Хеширование пароля в миллион раз может быть более безопасным, но также медленнее. Как достичь хорошего баланса между скоростью и безопасностью? Я хочу знать лучший метод шифрования в php и как его применять.Лучший метод шифрования

+0

хеширование пароля миллион раз является медленным и менее безопасным, чем просто хэширование его один раз –

+0

@MarkBaker Ну, на самом деле медленный процесс хэширования хорош для паролей, но не md5 или каких-либо алгоритмов sha * ... – Bun

+0

MD5 is невозможно расшифровать. Для хранения паролей это будет нормально. Не так ли? – meorfi

ответ

6

Используйте PHPass, это отличная хеширующая рама и очень проста в использовании!

+7

'произносится« pH pass »' suuuuuure ... – Bojangles

2

вы не ищете для шифрования - ваш ищет хэширования.

Я предлагаю openwalls phpass http://www.openwall.com/phpass/

Если вы используете PHP5.5 у них есть пароль hasing API http://uk3.php.net/password

для получения дополнительной информации.

MD5 (без соли) используется некоторое время, большое количество поисковых списков вокруг, в сочетании с современным оборудованием, получающим 700K + пароли в секунду, он не займет много времени, чтобы «отменить» пароль.

С солью они являются более безопасными, но все еще может быть взломан быстро

+0

Объясните, почему следует избегать MD5, пожалуйста. –

+0

какой метод я предпочитаю в склепе или хеше. –

+0

HashPassword ($ password) для hash it и CheckPassword ($ password, $ hash), чтобы проверить его. – exussum

3

Используйте SHA512 http://php.net/manual/en/function.hash.php. SHA512 не треснут. Я предлагаю использовать соль: Некоторая случайная строка, которую вы добавляете к паролю перед хэшированием. Это может защитить от предварительно вычисляемых таблиц радуги, но не против атак со словарями, если злоумышленник получает доступ к базе данных, содержащей пароли и соли. SHA512 (пароль + соль) -> хэш Хранить хэш и соль в БД При проверке пароля извлекайте соль, соответствующую пользователю, соедините ее с паролем, хеш-память и сравните ее с сохраненным хешем. : How long to brute force a salted SHA-512 hash? (salt provided)

Мысли о вашем вопросе и, в частности, о вашем заявлении «Хеширование пароля в миллион раз может быть более безопасным, но также более медленным. Как достичь хорошего баланса между скоростью и безопасностью». Действительно, многократное хеширование защитит вас от атак со словарями, сделав его чрезмерно дорогостоящим вычислением для вычисления всех хэшей в словаре. Я здесь не преподаю. Из первой ссылки, которую я вам дал, потребовалось около 46 миллисекунд, чтобы вычислить хэш SHA512, который относительно длинный. Из-под контроля я могу думать о следующих факторах, которые могут повлиять на ваше решение, так как вы находитесь в состоянии гонки вооружений: - Увеличение вычислительной мощности (больше вычислительных ядер и вычислений графического процессора) - Улучшенные алгоритмы с течением времени - Количество денег, доступных для злоумышленник - Значение, чтобы выйти из вашего сайта, если он взломан (если он невелик, это не стоило усилий) против - Объем мощности процессора у вас есть в вашем распоряжении Как правило, я бы хэш как во много раз, чтобы не повлиять на производительность моего веб-сайта. Принимая во внимание количество логинов в секунду, вы можете приблизительно рассчитать объем мощности процессора, который вы можете потратить, не влияя на производительность вашего сайта.

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

+0

Почему SHA512, а не водоворот? –

+0

Да, действительно, вы можете использовать любой сильный алгоритм хеширования. – Tarik

+0

Точно так зачем же конкретизировать конкретный, если есть десятки алгоритмов, которые медленны, большие и защищать? Почему SHA512, а не какой-то другой? Если вы укажете, что ONE, то в чем причина этого? Личные предпочтения, это действительно хорошо в веб-среде и т. д. Да, sha512 замечательный, но есть похожие. ответ на 1 алгоритм? –

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