Шифрование файла алгоритмом XOR:
Описание переменных:
F, ToF: file;
gamma: file of byte;
G: byte;
NumRead, NumWritten: Integer;
Buf: Byte;
Алгоритм шифрования:
Openfile.FilterIndex:=1;
randomize;
if OpenFile.Execute then
begin
try
AssignFile(F, OpenFile.FileName);
ebrowse.Text:=Openfile.FileName;
Reset(F, 1);
AssignFile(ToF, OpenFile.FileName+'encrypt');
AssignFile(Gamma,OpenFile.FileName+'encrypt'+'crc');
Rewrite(Gamma);
Rewrite(ToF, 1);
repeat
g:=random(256);
BlockRead(F, Buf, SizeOf(Buf), NumRead);
Buf:=Buf xor g;
BlockWrite(ToF, Buf, NumRead, NumWritten);
Write(Gamma, g);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(F);
CloseFile(ToF);
CloseFIle(Gamma); Eresult.Caption:='Файл зашифрован';
except Eresult.Caption:='Файл не зашифрован';
end;
end;
Дешифрация алгоритма XOR:
Описание перемнных:
F,ToF: file;
gamma: file of byte;
G: byte;
NumRead, NumWritten: Integer;
Buf: Byte;
Алгоритм дешифрации:
Openfile.Title:='Расшифровка файла';
Openfile.FilterIndex:=5;
try
if OpenFile.Execute then
begin
AssignFile(F, OpenFile.FileName);
eDecr.Text:=Openfile.FileName;
Reset(F, 1);
AssignFile(ToF, OpenFile.FileName+'source'); { Open output file }
AssignFile(Gamma, OpenFile.FileName+'CRC');
reset(Gamma);
Rewrite(ToF, 1);
repeat
BlockRead(F, Buf, SizeOf(Buf), NumRead);
Read(Gamma, g);
Buf:=Buf xor g;
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(F);
CloseFile(ToF);
CloseFIle(Gamma); dresult.Caption:='Файл расшифрован'; end;
except dresult.Caption:='Файл не расшифрован'; end;
http://all-recepts.ru. |