Delphi-Quellcode:
key := 'Super Geheim';
IV := 'DLX';
Es sind AnsiStrings, trag da ein was auch immer Du magst.
Ps:
Alternativ kannst Du es auch so machen:
function DecryptText(const Key, IV: AnsiString):String;
Und Du rufst die Funktion mit entsprechenden Parameter auf.
Allerdings muß man sich im klaren sein, daß dann der Algorithmus von der Stringlänge abhängt. Für Längen <=16 wird AES-128 verwendet, für Längen <= 24 dann AES-192 und sonst AES-256. Selbstverständlich darf dann auch nicht mit
Cipher.Init(Key[1],128,@IV[1]);
ohne Crash-Gefahr initilisiert werden. Ein IV muss 16 Bytes sein, da init einen Pointer verlangt, müssen mindestes 16 Bytes vorhanden. Ein IV := 'DLX' könnte dann crashen.
Ich hab die beiden funktionen nun so gemacht:
...
Delphi-Quellcode:
Cipher.DecryptCBC(Data[1],Data[1],Length(Data));
pad := 16- ord(Data[length(Data)]);
for index :=1 to pad do delete(Data,length(Data),1);
Außer dem trim wie von Kodezwerg bemerkt, ändere das ab zu
Delphi-Quellcode:
Cipher.DecryptCBC(Data[1],Data[1],Length(Data));
pad := ord(Data[length(Data)]);
for index :=1 to pad do delete(Data,length(Data),1);
Der vorliegende Code verwendet also
keinen 256-Bit-Schüssel sonder 'nur' 128 Bit.