Я работаю над скриптом и должен сохранять пароли. В целях развития я использовал функцию crypt()
потому что она была простой и доступной. Теперь, когда я в основном сделан, я хочу заменить его чем-то немного лучше и более последовательным.
Некоторые из моих проблем:
Я хочу что-то, что работает с PHP 4.3+.
Есть ли что-нибудь доступное, или я должен придерживаться crypt()
? Я думал об использовании md5(md5($password).$salt)
. Спасибо за понимание.
В crypt
нет ничего плохого
Если ваш сервер не поддерживает его, используйте другой сервер.
Вы никогда не должны использовать MD5 для хеширования паролей (или даже SHA1, если на то пошло)
Используйте либо bcrypt (метод blowfish crypt
), либо pbkdf2
Существует реализация pbkdf2 здесь: Шифрование паролей с помощью PHP для хранения данных с использованием стандарта RSA PBKDF2
Дополнительная информация о том, почему и как здесь:
Прежде всего: предоплата соли не является проблемой безопасности. Соль для каждого пароля – большой плюс, и вполне нормально, что она хранится рядом с pw.
Теперь: пока вы не переносите хэши паролей из одной системы в другую, а последние не поддерживают алгоритм по умолчанию первого, по определению ничего плохого не произойдет. Поскольку PHP 5.3 существуют встроенные алгоритмы в PHP, такие как Blowfish, которые гарантированно будут доступны.