1.
Code
type
PArray = ^TArray;
TArray = array[0..0] of Byte;
const
xA = $EC;
xB = $C3;
xC = $DA;
...
procedure Crypt(fname : string; Key : Byte);
var
f : file;
data : PArray;
size, i : Integer;
begin
AssignFile(f, fname);
Reset(f, 1);
size := FileSize(f);
GetMem(data, size);
BlockRead(f, data[0], size);
CloseFile(f);
for i := 0 to size - 1 do
begin
data[i] := data[i] xor Key;
Key := (Key * xA + xB) xor xC;
end;
Rewrite(f, 1);
BlockWrite(f, data[0], size);
CloseFile(f);
FreeMem(data);
end;
один раз по файлу этот код - зашифрует, 2й раз - расшифрует
2. Вопрос не понял