Главная страница
    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.039 c
14-1082448808
Nick-From
2004-04-20 12:13
2004.05.09
21 элт монитор


8-1076677977
Grinder
2004-02-13 16:12
2004.05.09
mp3 in program


14-1082187945
DCoder
2004-04-17 11:45
2004.05.09
WebApp с чего начать?


14-1082003944
WondeRu
2004-04-15 08:39
2004.05.09
Кредит на образование!Что? Где? Почем?


3-1081942884
AndrewK
2004-04-14 15:41
2004.05.09
Как отрезать время в параметре DateTime?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский