Intereting Posts
Фильтровать коллекцию продуктов по двум категориям Magento 1.7 Справка по регулярному выражению: проверка поддомена php: получать содержимое файла и хранить файл в определенной папке Создать RESTful API в PHP? Получение первого изображения в строке с php PHP PDO проверяет, существует ли таблица с определенным именем в базе данных mySQL Рекурсивная функция: вызов самой функции php Обрезать любые нули в начале строки с помощью PHP Рекомендации по доступу к зарегистрированному объекту пользователя из других классов Почему preg_replace бросает мне ошибку «Неизвестный модификатор»? Как получить данные из разных связанных таблиц, используя сдерживаемые в CakePHP? Как зашифровать вывод исходного кода HTML с помощью PHP CakePHP – Заказ в $ hasMany модели игнорируется Mysql Вставка или Обновление данных таблицы таблицы в другую таблицу с помощью соответствия valus Есть ли проблемы с использованием ключевого слова static в простой PHP-функции?

Попытка понять пароль_verify PHP

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

$sUniqueCode = uniqid('1234', true); $sHash1 = password_hash($sUniqueCode, PASSWORD_DEFAULT); $sHash2 = password_hash($sUniqueCode, PASSWORD_DEFAULT); $sHash3 = password_hash($sUniqueCode, PASSWORD_DEFAULT); echo "Hash 1: ".$sHash1."<br>"; echo "Hash 2: ".$sHash2."<br>"; echo "Hash 3: ".$sHash3."<br>"; if(password_verify($sHash1, $sHash1)) { echo "Hash 1 = hash 2 <br>"; } if(password_verify($sHash3, $sHash1)) { echo "Hash 1 = hash 3"; } 

Я не получаю отголосок от двух последних условий, чего мне здесь не хватает?

контекст

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

Если приведенный выше пример не работает, сравнение двух хэшей на моем веб-сайте не будет проверяться на истинное, верно?

Каждый хэш, сгенерированный с помощью password_hash () , солен с другой солью, поэтому $sHash1 , $sHash2 и $sHash3 будут разными

password_verify () используется для сравнения пароля открытого текста с хешированным паролем, а не с двумя хэшами друг с другом; используйте $sUniqueCode password_verify () для сравнения $sUniqueCode с любым из хэшей, который вы создали

 if (password_verify($sUniqueCode, $sHash1)) { ... } 

РЕДАКТИРОВАТЬ

Вместо отправки хэша паролей по электронной почте, который никоим образом не является полезным, отправьте ссылку nonce для доступа к первоначальной учетной записи или создание нового пароля