Мне было интересно, возможно ли использовать пароль_hash для моих паролей пользователей на моем веб-сайте.
Итак, скажем так:
 Пользователь регистрируется на моем сайте, они вводят пароль, мы будем называть этот input . 
  При создании учетной записи их пароль равен $firstHash = password_hash($input, PASSWORD_BCRYPT) (например, саке, скажем, этот хеш для этого «ThisFirstHash» 
  После того, как их пароль хэшируется, он снова хешируется $firstHash = password_hash($firstHash, PASSWORD_BCRYPT) (Например, саке, скажем, этот хэш на «thisSecondHash») 
Этот второй хэш – это то, что хранится в базе данных, поэтому теперь, когда они входят в систему, сервер должен расшифровать хеш-хеш.
  Когда пользователь входит в систему, они снова вводят свой пароль, мы снова вызываем этот input 
  сервер затем должен $loginHash1 = password_hash($input, PASSWORD_BCRYPT) вход для сравнения с сохраненным хешем $loginHash1 = password_hash($input, PASSWORD_BCRYPT) 
  Сервер сравнивает новую переменную loginHash1 с сохраненным хешем password_verify($loginHash1,"thisSecondHash") 
Если первый хеш совпадает, сравните второй хеш
 password_verify($input,"thisFirstHash") 
Я не мог заставить это работать должным образом в моей небольшой тестовой среде, я подозреваю, что это связано с тем, что рандомизированная соль различается во время фазы входа при повторной перемотке ввода.
Поэтому мои вопросы,
  Весь смысл API-интерфейса хэширования паролей – упростить реализацию безопасного хэширования.  Добавление сложности по мере того, как вы не добавите никакой безопасности, и это затрудняет отладку вашего кода.  Используйте один password_hash и один password_verify .  PHP PASSWORD_DEFAULT выбран, чтобы быть очень сильным уже: 
Для хэша
 $hash = password_hash($cleartext, PASSWORD_DEFAULT) 
Проверять
 $isCorrect = password_verify($cleartext, $hash); 
  Если вас не устраивают очень сильные значения по умолчанию для PHP, вы можете посмотреть настройки cost .  Но это действительно не нужно.  Документы говорят : 
password_hash () использует сильный хеш, генерирует сильную соль и автоматически применяет правильные раунды. password_hash () – простая оболочка crypt () и совместимая с существующими хэшами паролей. Рекомендуется использовать password_hash ().
  Функция password_hash() уже делает повторно хэш-пароль, это называется растяжкой ключей и делается для того, чтобы сделать атаки грубой силы более сложными.  Поэтому нет смысла использовать BCrypt дважды. 
Причина, по которой это не работает в вашем случае, заключается в том, что password_hash () добавляет случайную соль, которая становится частью полученного хэша. Эта соль необходима для проверки пароля, но при вызове функции дважды вы теряете первую соль.