В нэте нашел две функции на вид отличные,но как оказалось это не совсем так
Код:
const
StartKey = 359;//ключи на шифры
MultKey = 61522;
AddKey = 11785;
function TForm1.Encrypt(const InString: string; StartKey, MultKey,
AddKey: Integer): string;
var
I: Byte; //Функция шифрования
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[i]) xor (StartKey shr 8));
StartKey := (Byte(Result[i]) + StartKey) * MultKey + AddKey;
end;
end;
function TForm1.Decrypt(const InString: string; StartKey, MultKey,
AddKey: Integer): string;
var
I: Byte; //функция дешифрирования
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[i]) xor (StartKey shr 8));
StartKey := (Byte(InString[i]) + StartKey) * MultKey + AddKey;
end;
end;
При дешифрировании происходят ошибки,как правило кусок который как будто бы не дешифрировался или снос на новую строку лишний вылазиет. Возможно пользуюсь как то криво
Код:
procedure TForm1.Button5Click(Sender: TObject);
var
i:integer; //Шифруем
begin
for i:=0 to Memo1.Lines.Count-1 do
begin
Memo1.Lines[i]:=Encrypt(Memo1.Lines[i], StartKey, MultKey, AddKey);
end;
end;