В нэте нашел две функции на вид отличные,но как оказалось это не совсем так
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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 ;
|
При дешифрировании происходят ошибки,как правило кусок который как будто бы не дешифрировался или снос на новую строку лишний вылазиет. Возможно пользуюсь как то криво
Код:
1 2 3 4 5 6 7 8 9 | 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 ;
|