Почему phpass возвращает разные хэши для одной и той же входной строки?

#php #security #hash #phpass #initialization-vector

#php #Безопасность #хэш #phpass #инициализация-вектор

Вопрос:

Я привык к тому, что алгоритмы хеширования всегда возвращают один и тот же хэш.

Почему библиотека phpass всегда возвращает разные хэши?

Это как-то связано с IV? (Я никогда полностью не понимал эту концепцию)

 <?php

require __DIR__ . '/PasswordHash.php';

$hasher = new PasswordHash(11,false);

$password = 'bla123';

echo $hash = $hasher->hashPassword($password); // different for each request
  

Комментарии:

1. пожалуйста, предоставьте нам некоторый код, который вы используете

Ответ №1:

согласно этому разделу «Что, если пользователь уже существует?» это нормальное поведение этой библиотеки

Ответ №2:

Он использует crypt() , который уже генерирует разные хэши для одной и той же строки. Он хэширует каждый пароль другим ключом и хранит ключ внутри хэша (он общедоступен).