Hallo Delphi Gemeinde,
im Web findet man nicht viel über das Thema, daher Frage ich euch mal um Rat.
Aufgabe: Mit meinem Delphiprogramm eine Datei so zu verschlüsseln, dass ich sie mit Flash/AS3 entschlüsseln kann und umgekehrt.
Jeweils mit Delphi und Flash kann ich nach Lust und Laune ver- und entschlüsseln. Jedoch untereinander klappts nicht. Zu allem übel kommt auch noch eine PHP Verschlüsselungs-Seite obendrauf aber alles Schritt für Schritt
Problem: Sourcecode von Flash AS3 zu Delphi portieren. -> Möglicherweise stimmt die Formatierung nicht ganz.
AS3 Code (korrekt, so soll er laufen)
Code:
public function dstring(msg:String):String
{
_key1 = Hex.toArray(Hex.fromString(p1));
_cbcKey = Hex.toArray(Hex.fromString(p2));
var data:ByteArray = Base64.decodeToByteArray(msg);
var pad:IPad = new NullPad();
var mode:ICipher = Crypto.getCipher("aes-cbc", _key1, pad);
var ivmode:IVMode = mode as IVMode;
ivmode.IV = _cbcKey;
pad.setBlockSize(mode.getBlockSize());
mode.decrypt(data);
return Hex.toString(Hex.fromArray(data));
}
Delphi Code -> Er kann es nicht entschlüsseln
Code:
function DecryptString(text, key, IV: AnsiString): AnsiString;
var Cipher: TCipher_Rijndael;
begin
Cipher := TCipher_Rijndael.Create;
Cipher.Mode := cmCBCx;
Cipher.Init(key, IV, $FF);
Result := Cipher.DecodeBinary(TFormat_HEX.Encode(text), TFormat_MIME64);//TFormat_HEX
Cipher.Free;
end;
Liegt es vielleicht an dem "Base64.decodeToByteArray(msg);"?
Vielen Dank für eure Anregungen!
PS: Ich mache es erst einmal "Falschherum", da Flash viel unflexibler ist. Also lieber mit Delphi auf Flash eingehen als anders herum. UND wenn ich es erst einmal entschlüsseln kann, dann sollte das verschlüsseln nicht mehr allzu schwierig sein.