PHP: проверяет ли password_hash(), является ли сгенерированный хеш уникальным? (Понимание!)

Простой вопрос, потому что я не нашел действительно полезного ответа в Google: проверяет ли функция password_hash(), есть ли уже такой хэш, сгенерированный, например, в файле userdata? Я в основном понимаю, что делает функция, но я довольно новичок в php, поэтому я не смог увидеть, проверен ли пароль на уникальность.

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

3 ответа

Решение

Нет.

Две причины:

  • функция не будет ничего знать о "других" паролях.
  • Ты не хочешь этого. Что вы будете делать, если попали в дубликат? Скажите пользователю? Затем он узнает чей-то пароль.

Функция password_hash() разработана таким образом, что дублирование крайне маловероятно, поэтому, с точки зрения разработчика, не имеет значения, что теоретически два хэша могут быть одинаковыми.

Из-за свойств функции password_hash() и потому, что она генерирует случайную соль для каждого пароля...

  1. вероятность того, что функция сгенерирует дубликат, невероятно мала, даже если два пользователя используют один и тот же пароль, функция генерирует разные хэши
  2. в любом случае нельзя искать хеш, вам нужен другой ключ поиска, например имя пользователя, поэтому дубликат не будет проблемой.

Нет, это не проверяет уникальность.

Другие вопросы по тегам