Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Помагите перевести код с Делфи на СИ или АСМ   Найти похожие ветки 

 
AsbAlex ©   (2004-04-25 22:16) [0]

Вот код:

const
 b64alphabet2: PChar = "+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

function DecodeBaseTB(Value: String): String;
 function DecodeChunk(const Chunk: String): String;
 var
   W: LongWord;
   i: Byte;
 begin
   W := 0; Result := "";
   for i := 1 to 4 do
     if Pos(Chunk[i], b64alphabet2) <> 0 then
       W := W + Word((Pos(Chunk[i], b64alphabet2) - 1)) shl ((4 - i) * 6);
   for i := 1 to 3 do
       Result := Result + Chr(W shr ((3 - i) * 8) and $ff);
 end;
begin
 Result := "";
 if Length(Value) mod 4 <> 0 then Exit;
 while Length(Value) > 0 do begin
   Result := Result + DecodeChunk(Copy(Value, 0, 4));
   Delete(Value, 1, 4);
 end;
end;

function DecryptTheBatPass(const Value: String): String;
var
 S: String;
 i: Integer;
 Len: Integer;
begin
 Result := "<cannot decrypt>";
 S := DecodeBaseTB(Value);
 if Length(S) < 4 then Exit;
 for i := 1 to 4 do
   S[i] := Chr($FF - Ord(S[i]));
 Len := PDWord(@S[1])^;
 Delete(S, 1, 4);
 for i := 1 to Length(S) do
   S[i] := Chr(Ord(S[i]) xor $5A);
 Result := "";
 for i := Len downto 1 do
   Result := Result + S[i];
end;


 
AsbAlex ©   (2004-04-25 22:16) [0]

Вот код:

const
 b64alphabet2: PChar = "+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

function DecodeBaseTB(Value: String): String;
 function DecodeChunk(const Chunk: String): String;
 var
   W: LongWord;
   i: Byte;
 begin
   W := 0; Result := "";
   for i := 1 to 4 do
     if Pos(Chunk[i], b64alphabet2) <> 0 then
       W := W + Word((Pos(Chunk[i], b64alphabet2) - 1)) shl ((4 - i) * 6);
   for i := 1 to 3 do
       Result := Result + Chr(W shr ((3 - i) * 8) and $ff);
 end;
begin
 Result := "";
 if Length(Value) mod 4 <> 0 then Exit;
 while Length(Value) > 0 do begin
   Result := Result + DecodeChunk(Copy(Value, 0, 4));
   Delete(Value, 1, 4);
 end;
end;

function DecryptTheBatPass(const Value: String): String;
var
 S: String;
 i: Integer;
 Len: Integer;
begin
 Result := "<cannot decrypt>";
 S := DecodeBaseTB(Value);
 if Length(S) < 4 then Exit;
 for i := 1 to 4 do
   S[i] := Chr($FF - Ord(S[i]));
 Len := PDWord(@S[1])^;
 Delete(S, 1, 4);
 for i := 1 to Length(S) do
   S[i] := Chr(Ord(S[i]) xor $5A);
 Result := "";
 for i := Len downto 1 do
   Result := Result + S[i];
end;


 
DrPass ©   (2004-04-25 22:57) [1]

Лучше переведи на ASM - как раз будет чем на майские праздники заняться


 
DrPass ©   (2004-04-25 22:57) [1]

Лучше переведи на ASM - как раз будет чем на майские праздники заняться


 
Игорь Шевченко ©   (2004-04-25 23:40) [2]

Пароли ломать нехорошо


 
Игорь Шевченко ©   (2004-04-25 23:40) [2]

Пароли ломать нехорошо


 
AsbAlex ©   (2004-04-26 01:11) [3]

Вы здесь все больно умные, а никто помочь не хочет... :(


 
AsbAlex ©   (2004-04-26 01:11) [3]

Вы здесь все больно умные, а никто помочь не хочет... :(


 
Mim1 ©   (2004-04-26 01:25) [4]

AsbAlex ©   (26.04.04 01:11) [3]

Может поможеш мне убить кота моего соседа. Дело вроде не уголовное, а некоторые моральные качества мешают мне сделать такое.


 
Mim1 ©   (2004-04-26 01:25) [4]

AsbAlex ©   (26.04.04 01:11) [3]

Может поможеш мне убить кота моего соседа. Дело вроде не уголовное, а некоторые моральные качества мешают мне сделать такое.


 
Digitman ©   (2004-04-26 09:48) [5]


> AsbAlex ©   (25.04.04 22:16)


> Вы здесь все больно умные


.. а ты еще умней, видимо

размести этот код в отдельном модуле Делфи, объяви имена ф-ций в нем экспортируемыми, подключи модуль к любому проекту, установи опцию линкера Generate C/C++ object files, собери проект, получи объектный файл, подключи его как положено к проекту на C/C++


 
Digitman ©   (2004-04-26 09:48) [5]


> AsbAlex ©   (25.04.04 22:16)


> Вы здесь все больно умные


.. а ты еще умней, видимо

размести этот код в отдельном модуле Делфи, объяви имена ф-ций в нем экспортируемыми, подключи модуль к любому проекту, установи опцию линкера Generate C/C++ object files, собери проект, получи объектный файл, подключи его как положено к проекту на C/C++



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
1-1082234534
Игорь
2004-04-18 00:42
2004.05.09
Как добавить данные в меню на выпадающем меню, на рабочем столе?


8-1075969776
nike
2004-02-05 11:29
2004.05.09
winamp (in_mp3.dll, out_wave.dll) + delphi


1-1082619455
user_2
2004-04-22 11:37
2004.05.09
MDI form


14-1082206118
Крутыш
2004-04-17 16:48
2004.05.09
SOS…. Помогите!!! Не пойму что твориться с программой.


1-1082027236
$tranger
2004-04-15 15:07
2004.05.09
Закладка "SERVICES"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский