Delphi - работа с RSA

Забаненный
Статус
Оффлайн
Регистрация
30 Июл 2016
Сообщения
267
Реакции[?]
55
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
[FONT=&amp]Tак уж получилось, что по непонятной мне причине у "кодеров" возникает проблема с шифровкой строки в RSA. То ли не могу найти подходящего компонента, то ли ленивые, то ли вообще (кхм-кхм) тупые.[/FONT]
[FONT=&amp]Ну-с, начнём ([/FONT][FONT=&amp]код написан от руки и не компилировался в Delphi, на это расчитаны ВЫ и ваши прямые руки. Урок предоставлен в качестве пособия, а не точного примера[/FONT][FONT=&amp]).[/FONT]

[FONT=&amp]Строку шифровать мы будем при помощи мною любимого Chilkat (Линк ниже.).[/FONT]
[FONT=&amp]Шифрование будет происходить по Публичному ключу. На примере Steam (который вы все так любите) - Modulus & Exp.[/FONT]

[FONT=&amp]-----------------------------------------------------------------------------------------------------------[/FONT]
[FONT=&amp]Как добавлять Библиотеки и юниты в Delphi, думаю объяснять не стоит.[/FONT]
[FONT=&amp]В uses проекта вписываем данные пространства имён (юниты): Xml, Rsa .[/FONT]
[FONT=&amp](Не забудьте закинуть DLL в папку с .exe)[/FONT]
[FONT=&amp]Далее объявляем и инициализируем переменные:

[/FONT]

Код:
[COLOR=#ffffff][FONT=arial]procedure blablabla();
var
rsa: HCkRsa;
xml: HCkXml;
modulus, exponent: PWideChar;
begin
rsa := CkRsa_Create();
xml := CkXml_Create();
CkRsa_UnlockComponent(rsa,''); // ключ вводить не нужно, т.к. у нас Crack версия библиотеки.
modulus := '12e82d=lsadl13hf1f-012kf913g7f823f9031kf=-01j20f8==='; // Здесь нужный нам module
exponent := '010001'; // и экспонента соответственно (для Steam его значение - 010001)
//Далее экспортируем Модуль и Экспоненту в формат XML

CkXml_putTag(xml,'RSAPublicKey');
CkXml_NewChild2(xml,'Modulus',modulus);
CkXml_NewChild2(xml,'Exponent',exponent);

//И импортируем из XML формата наш ключ в RSA модуль
CkRsa_ImportPublicKey(rsa, CkXml__getXml(xml));

//Пора шифровать пароль
CkRsa_putEncodingMode(rsa,'base64'); // Энкодинг мод в основном у всех сервисов Base64. Т.е. Это RSA шифр обёрнутый бэйсой

Memo1.Lines.Add(CkRsa__encryptStringENC(rsa,'ШИФРУЕМАЯ СТРОКА',false)); // третий аргумент в функции encryptStringENC - это идентефикатор использования приватного ключа. Т.к. мы его не юзаем, ставим false

//PROFIT


//Не забываем Освободить память.
CkRsa_Dispose(rsa);
CkXml_Dispose(xml);

end;[/FONT][/COLOR]
 
Сверху Снизу