• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Rsa Encrypt Delphi + Пример Авторизации Steam.

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,548
Баллы
155
Код:
Код:
RsaCalc, httpsend, ssl_openssl, System.RegularExpressions, synacode
Описание класса:
Код:
type
  Thread = class(TThread)
  private
    RSA: TRSACalculator;
    HTTP: THTTPSend;
    Scr: TStringList;
    Data: TStringStream;
    tEncryptPass: AnsiString;
    tPublicKey: String;
    tRegEx: TRegEx;
    tTimeStamp: String;
  protected
    procedure Execute; override;
  end;
Процедура:
Код:
procedure Thread.Execute;
const
  Password = 'password';
  Username = 'username';
begin
  HTTP := THTTPSend.Create;
  Scr := TStringList.Create;
  Data := TStringStream.Create;
  HTTP.HTTPMethod('GET', 'https://steamcommunity.com/login/getrsakey?username=' + Username);
  Scr.LoadFromStream(HTTP.Document);
  tPublicKey := tRegEx.Matches(Scr.Text, 'publickey_mod":"(.*?)"', [roIgnoreCase, roMultiLine]).Item[0].Groups[1].Value;
  tTimeStamp := tRegEx.Matches(Scr.Text, 'timestamp":"(.*?)"', [roIgnoreCase, roMultiLine]).Item[0].Groups[1].Value;;
  HTTP.Clear;
  Synchronize(
  procedure
  begin
    RSA := TRSACalculator.Create(Form1);
      RSA.Calculate(Password, tPublicKey, tEncryptPass);
    FreeAndNil(RSA);
  end);
  HTTP.MimeType := 'application/x-www-form-urlencoded';
  Data.WriteString('donotcache=' + '&password=' + EncodeTriplet(tEncryptPass, '%', URLSpecialChar + URLFullSpecialChar) +
    '&username=' + Username + '&twofactorcode=' + '&emailauth=' +
    '&loginfriendlyname=' + '&captchagid=-1' + '&captcha_text=' +
    '&emailsteamid=' + '&rsatimestamp=' + tTimeStamp + '&remember_login=false');
  HTTP.Document.LoadFromStream(Data);
  HTTP.HTTPMethod('POST', 'https://steamcommunity.com/login/dologin/');
  FreeAndNil(HTTP);
  FreeAndNil(Scr);
  FreeAndNil(Data);
end;
 
Вверх Снизу