PHP.net говорит, что md5 () и sha1 () не подходят для пароля? - PullRequest
0 голосов
/ 13 ноября 2011

http://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash

Я храню пароли пользователей в базе данных MySQL в хэш-форме. Значит ли это, что это небезопасно? Если это так, каковы мои альтернативы?

Ответы [ 5 ]

3 голосов
/ 13 ноября 2011

Следующий вопрос в FAQ, на который вы ссылались, обсуждает его: Как мне хешировать пароли, если общие хеш-функции не подходят?

Из FAQ:

Рекомендуемый алгоритм для хеширования паролей - Blowfish, поскольку он значительно дороже в вычислительном отношении, чем MD5 или SHA1, и при этом все еще масштабируем..

2 голосов
/ 13 ноября 2011

Как рекомендует страница, на которую вы ссылались, используйте функцию PHP crypt() с алгоритмом Blowfish.Кроме того, используйте различную соль для каждого звонка на crypt().Значения соли можно хранить в той же таблице базы данных, что и пароль, чтобы ее можно было использовать при последующем сравнении паролей.

Чтобы вызвать crypt() с помощью алгоритма Blowfish, используйте соль, которая начинается с$2a$, за которым следует число («параметр стоимости») между 04 и 31, затем $, а затем 22 цифры из алфавита ./0-9A-Za-z.

PHP:Инструкция Crypt содержит более подробную информацию о том, как использовать crypt()

2 голосов
/ 13 ноября 2011

Ответили много раз раньше. Вы можете использовать что-то вроде SHA-256 http://php.net/manual/en/function.hash.php, но вы также должны посолить пароль перед его хэшированием, и вы можете многократно хэшировать пароль - так что в маловероятном случае, если он взломан, он покажет только другой хэш (другими словами взлом пароля занимает гораздо больше времени).

0 голосов
/ 13 ноября 2011

В качестве конкретного примера того, почему использование простого несоленого MD5 для хеширования паролей является плохой идеей, попробуйте ввести MD5-хэши некоторых достаточно распространенных паролей на сайт, такой как md5decrypter.co.uk или md5hashcracker.appspot.com или md5this.com . Или просто в Google , который индексирует большинство этих сайтов (и многие другие тоже).

0 голосов
/ 13 ноября 2011

Прочитайте следующий раздел ссылки: Как мне хешировать пароли, если общие хеш-функции не подходят?

...