Я создаю поставщика услуг регистрации пользователей, и в этом я использую функцию password_hash для хэширования предоставленного пароля пользователя. Ниже приводится часть кода используется для того, чтобы создать хэш строки:PHP Проблема: функция password_hash не может генерировать соль
public function generateHash($string)
{
return password_hash($string, PASSWORD_BCRYPT);
}
Как я понял из PHP инструкции, мы не должны генерировать нашу соль и вместо того, чтобы позволить password_hash функция заботиться о том, что для повышения уровня безопасности. Однако, когда я пытаюсь создать новый пользователь, я получаю ниже предупреждение:
Предупреждение: password_hash(): Не удается генерировать соль
Приложение создает пользователь, но в связи с выше вопросом нет хэш будет сгенерирован и пароль всегда будет пустым в базе данных
Я использую PHP версии 7.0.4/Zend Server, в моей среде разработки
было бы весьма признателен, если кто-то может мне точку в правильном
В какой операционной системе вы принимаете? – jszobody
Пустой пароль по-прежнему будет возвращать хэш. –
Из поиска единственное место в источнике PHP, где генерируется это сообщение об ошибке, - [сбой генерации случайных байтов] (https://github.com/php/php-src/blob/c72282a13b12b7e572469eba7a7ce593d900a8a2/ext/standard/password. C# L125-L126). Глядя на [random_bytes] (http://php.net/random_bytes), вы можете увидеть различные способы, с помощью которых PHP попытается создать случайность. Я бы начал их устранять. – jszobody