Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: [DEC] WideString ver/entschlüsseln

  Alt 7. Jan 2008, 00:34
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat