Мой код допиленый по примеру Alegun, расшифровывает весь файл целиком вместе с системной частью.
Код:
function Encrypt_(s:string; EncodeTable:array of Integer):string;
var
i,KeyL:Integer;
begin
Result:='';
KeyL:=0;
for i:=1 to Length(s) do
begin
if KeyL>2 then KeyL:=0;
Result:=Result+Char(Ord(s[i])+EncodeTable[KeyL]);
Inc(KeyL);
end;
end;
function Encrypt(s:string):string;
const Key1:array[0..2] of Integer=(1,2,0);
Key2:array[0..2] of Integer=(2,3,1);
Key3:array[0..2] of Integer=(3,4,2);
begin
Result:='';
if Length(s)<4 then Exit;
if (s[1] = ')') or (s[4] = ',') then Result:=Encrypt_(s,Key1);
if s[4]='+' then Result:=Encrypt_(s,Key2);
if s[4]='*' then Result:=Encrypt_(s,Key3);
end;
procedure StartDecode;
var
sl:TStringList;
I:Integer;
begin
sl:=TStringList.Create;
sl.LoadFromFile('icon6@.bmp');
for I:=0 to sl.Count-1 do
mmo1.Lines.Add(Encrypt(sl[i]));
sl.Free;
end;
Чтобы обратно зашифровать нужно в функции Encrypt_ сложение заменить на вычитание.
P.S. Пробовал Рандеву с незнакомкой 9, тоже работает, судя по всему во всех частях один и тот же ключ и алгоритм.