Форум: "Основная";
Текущий архив: 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