PHP: проверяет ли password_hash(), является ли сгенерированный хеш уникальным? (Понимание!)
Простой вопрос, потому что я не нашел действительно полезного ответа в Google: проверяет ли функция password_hash(), есть ли уже такой хэш, сгенерированный, например, в файле userdata? Я в основном понимаю, что делает функция, но я довольно новичок в php, поэтому я не смог увидеть, проверен ли пароль на уникальность.
Пожалуйста, будьте осторожны с этим вопросом о нубе прямо здесь. Я просто хочу понять, что я использую прямо здесь, и не только сделать это, потому что мой лист упражнений в университете говорит мне об этом.
3 ответа
Нет.
Две причины:
- функция не будет ничего знать о "других" паролях.
- Ты не хочешь этого. Что вы будете делать, если попали в дубликат? Скажите пользователю? Затем он узнает чей-то пароль.
Функция password_hash() разработана таким образом, что дублирование крайне маловероятно, поэтому, с точки зрения разработчика, не имеет значения, что теоретически два хэша могут быть одинаковыми.
Из-за свойств функции password_hash() и потому, что она генерирует случайную соль для каждого пароля...
- вероятность того, что функция сгенерирует дубликат, невероятно мала, даже если два пользователя используют один и тот же пароль, функция генерирует разные хэши
- в любом случае нельзя искать хеш, вам нужен другой ключ поиска, например имя пользователя, поэтому дубликат не будет проблемой.