Dieses Verhalten konnte ich eben auch beobachten. Ist absichtlich gewollt, dass beim Programmstart immer die selbe Zufallszahl und dann die selbe Reihenfolge produziert wird? Eigentlich müsste das doch zufällig sein. Zum Verschlüsseln nehme ich den Beispielcode, der beim
DEC in der Datei Example.txt mitgelieft wird. Siehe unten. Dieser nutzt RandomBinary und produziert daher immer die selben verschlüsselten Ergebnisse.
Delphi-Quellcode:
function Encrypt(const AText: String; const APassword: String): String; overload;
var
ASalt: Binary;
AData: Binary;
APass: Binary;
begin
with ValidCipher(ACipherClass).Create, Context do
try
ASalt := RandomBinary(16);
APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex);
Mode := ACipherMode;
Init(APass);
SetLength(AData, Length(AText) * SizeOf(AText[1]));
Encode(AText[1], AData[1], Length(AData));
Result := ValidFormat(ATextFormat).Encode(ASalt + AData + CalcMAC);
finally
Free;
ProtectBinary(ASalt);
ProtectBinary(AData);
ProtectBinary(APass);
end;
end;