Альтернатива crypt () - PullRequest
       10

Альтернатива crypt ()

6 голосов
/ 29 декабря 2011

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

Вот некоторые из моих проблем:

  • не все алгоритмы поддерживаются в каждой системе
  • иногда соль предварительно зависит от результата (кажется проблемой безопасности)

Я хочу что-то, что работает с PHP 4.3 +.

Есть ли что-нибудь доступное, или я должен придерживаться crypt()? Я думал об использовании md5(md5($password).$salt). Спасибо за понимание.

Ответы [ 2 ]

6 голосов
/ 29 декабря 2011

Нет ничего плохого в crypt

Если ваш сервер не поддерживает его, используйте другой сервер.

Вам следует НИКОГДА используйте MD5 для хеширования паролей (или даже SHA1 в этом отношении)

Используйте либо bcrypt (метод blowfish crypt), либо pbkdf2

Здесь есть реализация pbkdf2: Шифрование паролей с помощью PHP для хранилища с использованием стандарта RSA PBKDF2

Более подробная информация о том, почему и как здесь:

4 голосов
/ 29 декабря 2011

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

Теперь: пока вы не переносите хеши паролей из одной системы в другую, а последняяне поддерживая алгоритм по умолчанию первого, ничего плохого по определению не произойдет.Начиная с PHP 5.3, в PHP есть встроенные алгоритмы, такие как Blowfish, которые гарантированно будут доступны.

...