Как сгенерировать случайную соль для хеширования паролей
Возможный дубликат:
Безопасный хэш и соль для паролей PHP
Я хочу создать случайную соль, а затем сохранить ее вместе с паролем в базе данных пользователей. Так что как то так я думаю.
$salt = //random salt code
$hpassword = crypt($password,$salt)
2 ответа
Версия 5.5 PHP будет иметь встроенную поддержку BCrypt, функции password_hash()
а также password_verify()
, Для PHP версии 5.3.7 и выше, существует пакет совместимости, и там вы можете найти хорошую реализацию того, как создать соль, используя функцию mcrypt_create_iv()
см. строки 86 и 121.
Из-за этого пакета совместимости вы также должны рассмотреть возможность использования этих функций напрямую, вместо того, чтобы писать свои собственные, здесь вы можете найти пример. Особенно создание соли для BCrypt - сложная вещь, и можно сделать много ошибок.
PS Соль должна быть как можно более случайной (считывается из случайного источника операционной системы), потому что это лучший способ сделать ее уникальной и непредсказуемой на детерминированном компьютере.
Попробуйте хешировать существующее поле (например, имя пользователя) и использовать его для соли.
Попробуйте здесь: http://en.wikipedia.org/wiki/PBKDF2