Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#1

DEC:Problem mit Verschlüsseln von FileStream -> MemoryStr

  Alt 3. Feb 2004, 20:13
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat