Как точно & соль & rdquo; сгенерированный в PHP password_hash? [Дубликат]

Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result является undefined в вашем примере кода.

5
задан sjagr 20 February 2015 в 16:26
поделиться

2 ответа

Давайте рассмотрим пример из того, что вам говорят все:

$options = [
    'cost' => 11,
    'salt' => 'abcdefghijklmnopqrstuv',
];
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT, $options)."\n";

Выход:

$ 2y $ 11 $ abcdefghijklmnopqrstuu7aZVUzfW85EB4mHER81Oudv / rT.rmWm

Полужирные части - это ваши затраты и соль, соответственно встроенные в результирующий хэш.

Вы можете переплеть это обратно в password_verify , и он будет обрабатывать это соответственно:

print_r(password_verify('rasmuslerdorf', '$2y$11$abcdefghijklmnopqrstuu7aZVUzfW85EB4mHER81Oudv/rT.rmWm')); // true
7
ответ дан sjagr 26 August 2018 в 13:16
поделиться

В password_hash manual указано

Используемый алгоритм, стоимость и соль возвращаются как часть хэша. Поэтому вся информация, необходимая для проверки хэша, включена в нее. Это позволяет функции password_verify () проверять хеш, не требуя отдельного хранилища для информации о соле или алгоритме.

Поэтому соль уже включена в хэш, который вы сохраняете в db.

3
ответ дан Anigel 26 August 2018 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: