Моя первая попытка на php, и я работаю с password_compat, так как на сервере работает версия php ‹5.5.
У меня есть набор данных пользователя, которые я автоматически сохраняю в базе данных. У каждого пользователя есть уникальная соль, сгенерированная из $random_salt = mcrypt_create_iv(24, MCRYPT_DEV_URANDOM);
, и я пытался сохранить ее в базе данных в виде большого двоичного объекта, и вместе с этим я сохраняю свой хешированный пароль со следующим
$options = array('cost' => 8, 'salt' => $random_salt);
$password = password_hash($password, PASSWORD_BCRYPT, $options);
Чтобы проверить, я запрашиваю базу данных, получаю совпадение и передаю атрибут соли в переменную $salt и получаю сохраненный хешированный пароль. Наконец, используя следующее
$options = array('cost' => 8, 'salt' => $salt);
$password = password_hash($password, PASSWORD_BCRYPT, $options);
$intVar = (int) password_verify($password, $db_password);
мои результаты пока только по одному из входов в систему не совпадают.
Где я ошибаюсь? Это тип данных атрибута базы данных для соли? мое использование password_hash?