Hy TurboMagic,
leider ist mein Verständnis der Thematik nicht sehr ausgeprägt.
Ich benutze die folgende Funktion zum verschlüsseln:
Delphi-Quellcode:
function Encrypt(const AText: String; const APassword: String): String; overload;
var
ASalt: Binary;
AData: Binary;
APass: Binary;
begin
with ValidCipher(TCipher_Rijndael).Create, Context do
try
ASalt := RandomBinary(16);
APass := ValidHash(THash_Whirlpool).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, 1);
Mode := cmCBCx;
Init(APass);
SetLength(AData, Length(AText) * SizeOf(AText[1]));
Encode(AText[1], AData[1], Length(AData));
Result := ValidFormat(TFormat_Mime64).Encode(ASalt + AData + CalcMAC);
finally
Free;
ProtectBinary(ASalt);
ProtectBinary(AData);
ProtectBinary(APass);
end;
end;
Wenn ich das richtig verstanden habe, gibt es keine Entsprechung von KDFx in anderen Libs (Crypto.js) und ich weiß nicht wie ich das umsetzen kann.
Leider ist das Problem ein uneingeplanter Nebenschauplatz meines eigentlichen Projektes. Daher ist meine Hoffnung, dass ich das
Rad nicht neu erfinden muss und mir jemand mit einem funktionierenden Codeschnipsel behilflich sein kann...
Welcher Algorithmus/Parameter verwendet werden ist im Prinzip egal. Es gibt keine Vorgaben. Nur Klartext darf es nicht sein
Wenn 6.1 "gefixt" ist, kann ich das gerne bei mir testen