Как проверить пароль в Delphi если он создан в PHP функцией password_hash()

225
29 апреля 2022, 01:20

У меня есть самописный сайт на PHP. База данных MySQL. Столкнулся с необходимостью создать приложение на Delphi. Которое будет работать с этой же БД.

Для того что-бы защитить пароли пользователей я их захешировал функцией password_hash() в PHP.

//Шифрование пароля
        $user['password'] = password_hash($user['password'], PASSWORD_DEFAULT);

На Delphi Планирую реализовать таким образом: На форме два поля ввода. Edit1 и Edit2. И кнопка. После нажатия на кнопку данные с поля Edit2 хешируются и формируется запрос в бд.

У меня проблема с хешированием в Delphi. Я использовал Bcrypt.pas но у меня ничего не получилось.

Я ищу одинаковый метод хеширования для Delphi и PHP. ПОдскажите пли.

Answer 1

Использовал материал по ссылке

В результате у меня 2е формы. На первой два Edit, button, idhttp, idcookiemanager, idantifreeze.

procedure TLogin.Button1Click(Sender: TObject);
var
  str: TStringList; // Переменная в которой будем формировать запрос на сайт
  bufer: string;
  // В этих переменных будем хранить те самые пару значений из переловленного запроса.
begin
  IdHTTP1.Request.AcceptCharSet := 'windows-1251';
  str := TStringList.Create;
  // Формируем POST запрос
  str.Add('login='+ Edit1.text); // Добавляем в запрос переменную username
  str.Add('password='+ Edit2.text); // Добавляем в запрос переменную password
  bufer := IdHTTP1.Post('http://diptrace.zzz.com.ua/auth/signin', str);
  // Сформированный Post запрос отправляем на сервер, адрес мы узнали из перехваченнгого пакета.
  bufer := IdHTTP1.Get('http://diptrace.zzz.com.ua/CP/');
  if Pos('Выход', bufer) > 1 then
  // На странице должна появиться кнопка с надписью "Выйти".
  begin
    Form2.Visible:=true;
    Login.Visible:=false;
  end
  else
    ShowMessage('Проверьте Логин/пароль'); // Если не все - то не ок
  str.Destroy;

end;

Ну а далее я планирую работать уже напрямую с БД.

READ ALSO
Подключение проекта на php symfony к БД postgresql 13

Подключение проекта на php symfony к БД postgresql 13

Есть проект на symfony и БД postgres 13, пытаюсь провести миграцию "symfony console make:migration"В ответ получаю вот это: Я так понял что при настройке где-то...

265
Не пишет ошибку PHP

Не пишет ошибку PHP

При вбивании в input существующего имени не пишит ошибку ВЫБРАННОЕ ИМЯ УЖЕ ЗАНЯТО, а всё остальное работаетВ чём может быть глюк?

190
Проблема с CURL получением содержимого

Проблема с CURL получением содержимого

Не могу CURL'ом получить содержимое страницы с сайта kaspikz Пример кода:

190
Поиск по JSON | MySql

Поиск по JSON | MySql

Есть json столбец

130