Hi,
ich stehe gerade vor einem ähnlichen Problem wie der OP:
Wir nutzen die gleiche C#-Funktion zum Verschlüsseln (copy-paste von irgendwo aus dem Netz, würde ich da jetzt mal behaupten).
Ich muss das jetzt auf der anderen Seite wieder mit Delphi entschlüsseln. Da habe ich mir das sagenumwobene
DEC zur Hilfe genommen und es nach langem Fummeln und viel Lesen (div. Threads hier in der
DP zum Thema
DEC und Rijndael) auch geschafft, es so zu benutzen, dass ich etwas ver- und auch wieder entschlüsseln kann.
Wenn ich da jetzt allerdings die mit der C#-Funktion verschlüsselten Daten reinstopfe, bekomme ich nur Zeichen-Salat raus.
Hier mein Code:
Delphi-Quellcode:
function DecryptBase64Str(const CipherText_Base64: Binary; const Password: Binary; const Salt: Binary; const InitVector: string): string;
var
rind: TCipher_Rijndael;
pass: string;
begin
rind:= TCipher_Rijndael.Create;
rind.Mode:= cmCBCx;
pass:= THash_SHA1.KDFx(Password,salt,rind.Context.KeySize);
rind.Init(pass,Length(pass),InitVector,SizeOf(InitVector));
Result:= rind.DecodeBinary(TFormat_MIME64.Decode(CipherText_Base64));
end;
Könnte es an der KDF liegen? PasswordDeriveBytes benutzt PBKDF1, was benutzt
DEC?
Weiß einer, wie die Umkehrung des C#-Codes in Delphi aussieht?
Vielen Dank schonmal!