Главная страница
    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.032 c
1-1082450472
inc.
2004-04-20 12:41
2004.05.09
поделить на 1000?


11-1068215299
SPeller
2003-11-07 17:28
2004.05.09
Глюк с формой


14-1082051276
Michael
2004-04-15 21:47
2004.05.09
Порекомендуйте книгу по организации/архитектуре ЭВМ.


4-1079071348
KME
2004-03-12 09:02
2004.05.09
МЕНЮ НА WINAPI


1-1082360458
k&amp;k
2004-04-19 11:40
2004.05.09
Drag&amp;Drop





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