Подтвердить что ты не робот

Лучший хэш-алгоритм для использования в PHP/MYSQL

Какой наилучший рекомендуемый алгоритм для шифрования паролей в php/mysql

4b9b3361

Ответ 1

Я бы использовал функцию php crypt(), потому что в любом случае пароль не будет расшифрован. Когда мне нужно проверить введенный пароль, мне просто нужно зашифровать его и сравнить два результата.

Ответ 2

SHA-512 с солью - хороший и безопасный способ хеширования пароля. Если это не доступно, у вас есть SHA-1, но в наши дни безопасность считается немного слабой, особенно если вы не используете соль.

Ответ 4

  • Современное мышление заключается в использовании алгового аллога SLOW. Это приводит к тому, что "грубые раны" проводят много времени, производя все эти попытки.

  • Намного разумнее отслеживать запросы URI по IP и блокировать с объяснением, когда 5 попыток входа не срабатывают с одного и того же IP-адреса в течение любого 5-минутного периода.

  • Банковское умение по-прежнему состоит в том, чтобы делать # 1, # 2, а также требовать вторичного прохода после первого успешного завершения. Тройной отказ при втором вызове приводит к блокировке.

Уровень 3 безопасности очень, очень сильный. Вероятно, слишком сильный.

Ответ 5

Там есть достойная статья здесь - короткий ответ, используйте crypt() и убедитесь, что вы используете salt.

Ответ 6

Существует множество опций - см. php hash docs для полного списка.

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

Ответ 7

Miki725 вызывает интересные моменты с статья Матасано  Хотя sha512 лучше, чем md5 криптографически, bcrypt превосходит их всех, потому что он медленнее и, следовательно, стоит больше атаковать. Медленнее - это плохо, интернет уже медленный, он в миллионы раз медленнее кэша процессора и в тысячи раз медленнее, чем диск. Выполнение проверки пароля занимает 200 мс вместо 1 мс для вычисления, не будет беспокоить всех пользователей.

Самое главное, не забудьте использовать nonce, который произвольно сгенерирован и отличается для каждого пользователя.

bcrypt будет неоптимальным в PHP, потому что php интерпретируется, и это дает злоумышленнику некоторое преимущество, но есть fooobar.com/info/1300/...