Hi,
Ich verstehe gerade nicht, warum ich dort die Parameter ändern muss?
Ich habe eben das Problem, ein WideString zu haben, den ich verschlüsseln und entschlüsseln muss.
Nun wollte ich dafür das
DEC verwenden, da es dafür ja perfekt ist.
Und aufgrund der hohen Sicherheit von AES bzw. Rijndael benutze ich diesen.
Meine konkrete Frage und das Problem ist jetzt: Kann man mithilfe von
DEC ein WideString verschlüsseln? Was herauskommt (String, WideString, ByteArray) ist egal,
hauptsache das entschlüsseln funktioniert dann.
Zur Zeit funktioniert noch nichtmal folgendes:
Delphi-Quellcode:
function Encode(const Key: String; const Text: String) : String;
var
Salt: Binary;
cipher : TCipher_Rijndael;
begin
cipher := TCipher_Rijndael.Create;
try
cipher.Mode := cmCBCx;
Salt := RandomBinary(16);
cipher.Init(THash_SHA1.KDFx(Key, Salt, cipher.Context.KeySize));
Result := TFormat_MIME64.Encode(Salt + cipher.EncodeBinary(Text));
finally
cipher.Free;
end;
end;
function Decode(const Key: String; const Text: String) : String;
var
Data: Binary;
cipher : TCipher_Rijndael;
begin
cipher := TCipher_Rijndael.Create;
try
cipher.Mode := cmCBCx;
Data := TFormat_MIME64.Decode(Text);
cipher.Init(THash_SHA1.KDFx(Key, Copy(Data, 1, 16), cipher.Context.KeySize));
Result := cipher.DecodeBinary(Copy(Data, 16, MaxInt));
finally
cipher.Free;
ProtectBinary(Data);
end;
end;
Aufruf:
ShowMessage(Decode('HW', Encode('HW', 'Die Welt ist nicht genug')));
Ergebnis:
siVµ³äµsF}×—Néòht genug
MfG
xZise