Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.26;
Скачать: CL | DM;

Вниз

Шифрование streamа   Найти похожие ветки 

 
XHelp ©   (2003-12-14 03:18) [0]

Хай всем...
я пишу прогу для своей сетки... она использует шифрованный трафик, тоесть шифрует всё что шлет по простой процедуре:

function tf1.crypt(s:string):string;
var
i:integer;
begin
Result:="";
for i:=1 to Length(s) do Result:=Result+char(ord(s[i]) xor 62);
end;

Теперь захотел сделать пересылку файлов по примеру описаному в Делфи глазами хакера... но возникают проблеммы с шифрованием...

Как можно по этой же процедуре зашифровать весь TFileStream?


 
Юрий Зотов ©   (2003-12-14 09:04) [1]

Процедура для шифровки любого потока:

procedure CryptStream(S: TStream; Mask: byte);
var
M: TMemoryStream;
P: ^byte;
i: integer;
begin
M := TMemoryStream.Create;
try
M.LoadFromStream(S);
P := M.Memory;
for i := 1 to M.Size do
begin
P^ := P^ xor Mask;
Inc(P)
end;
S.Position := 0;
M.Position := 0;
S.CopyFrom(M, M.Size)
finally
M.Free
end
end;

Но если Вы будете грузить файл не в FileStream, а сразу в MemoryStream, то при шифровке избежите двойного расхода памяти.

function CryptFile(const FileName: string; Mask: byte): TMemoryStream;
var
P: ^byte;
i: integer;
begin
Result := TMemoryStream.Create;
with Result do
try
LoadFromFile(FileName);
P := Memory;
for i := 1 to Size do
begin
P^ := P^ xor Mask;
Inc(P)
end;
except
Free;
raise
end
end;


 
XHelp ©   (2003-12-14 13:07) [2]

Спасибо



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

Текущий архив: 2003.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
1-86391
GreySerg
2003-12-15 12:49
2003.12.26
Есть ли в Delphi стандартные функции разбора HTML текста ?


3-86243
Mamed
2003-12-04 10:22
2003.12.26
Client dataset


1-86359
Talla2k
2003-12-12 12:50
2003.12.26
shellAPI(с блокнотом)


1-86379
Петрович
2003-12-15 14:02
2003.12.26
Проверить Edit.Text типа ВСЕ-ли цифры


14-86556
Johnmen
2003-12-02 13:38
2003.12.26
Справочная система и CHM файлы