Hallo,
ich habe heute ein wenig mit
DEC rumprobiert. Dabei ist mir aufgefallen, dass das
DEC zu bei großen Datenmengen zu hängen scheint. (Verschlüsselung war Rijndael mit cmCTS)
Das direkte Verschlüsseln einer Datei z.B. mit
Delphi-Quellcode:
var
F: TFileStream;
begin
CipherManager1.InitKey('test', nil);
F := TFileStream.Create('C:\Dokumente und Einstellungen\mirage228\Desktop\battlefield_1942_secret_weapons_of_WWII_demo.exe', fmOpenReadWrite); // Richtig grosse datei mit 120 MB
try
CipherManager1.EncodeStream(F, F, F.Size);
finally
F.Free;
end;
end;
funktioniert ohne Probleme (dauert auch nicht allzu lange).
Wenn ich aber folgendes Schreibe hängt das Programm mit ca. 90 % CPU-Last und 20-40 MB Speicherverbrauch. Ich habe es mal 5 Minuten laufen lassen und es ging trotzdem nicht weiter.
Delphi-Quellcode:
var
F: TFileStream;
M: TMemoryStream;
begin
CipherManager1.InitKey('test', nil);
F := TFileStream.Create('C:\Dokumente und Einstellungen\mirage228\Desktop\battlefield_1942_secret_weapons_of_WWII_demo.exe', fmOpenReadWrite);
M := TMemoryStream.Create();
try
CipherManager1.EncodeStream(F, M, F.Size);
finally
M.Free; // in meinem eigentlichen Programm wird der MemoryStream noch weiterverarbeitet.
F.Free;
end;
end;
Das merwürdige ist, dass es bei kleineren Datenmengen (1 MB) ziemlich schnell geht.
Wenn ich etwas größere (schon ab 10MB) Dateien nehme, hängt das Programm.
Ich weiss jetzt nicht, ob das ein Bug im
DEC ist (dürfte eigentlich nicht sein) oder ich etwas falsch gemacht habe...
Habe Delphi 7 Professional und das
DEC Part I.
Ich hoffe, jemand kann mir weiterhelfen.
mfG
mirage228