Сравните хэш BCrypt с PHP хешем Bcrypt
Вот что я против.
У меня есть приложение для iPhone, которое я создаю и которое взаимодействует с защищенными паролем страницами на моем сайте. Приложение может нормально пройти защиту паролем и получить ответ со страницы просто отлично. Проблема в том, что когда я пытаюсь войти на сайт из моего приложения, он отклоняется. Я считаю, что это потому, что я хеширую пароль с помощью Bcrypt в приложении, прежде чем отправить его на сайт, а затем проверю его с помощью password_verify()
, который, конечно, принимает простой текст пароля, а затем хэшированную версию, но я даю ему две хэшированные версии одной и той же вещи, которую он не принимает.
У меня такой вопрос: можно ли сравнить два зашифрованных пароля, используя password_verify
или какая-то другая функция или нет? А если нет, то достаточно ли это безопасно, чтобы (смею сказать) отправить пароль в виде простого текста из приложения?
Спасибо всем заранее!
1 ответ
Можно ли сравнить два зашифрованных пароля, используя password_verify или какую-либо другую функцию, или нет?
Нет. password_verify
требует пароль в виде открытого текста и ранее хешированную форму пароля со встроенной солью в качестве входных данных, и нет никакого способа обойти это. Алгоритм таков, что вам снова нужна соль для создания того же хеша, поэтому единственный вариант - передать хеш / соль клиенту для воспроизведения там алгоритма. Но это бессмысленно, поскольку вы хотите сделать подтверждение пароля на сервере, а не на ненадежном клиенте.
А если нет, то достаточно ли это безопасно, чтобы (смею сказать) отправить пароль в виде простого текста из приложения?
Конечно, пока канал связи безопасен, то есть у вас есть соединение SSL.