Einzelnen Beitrag anzeigen

derDoc

Registriert seit: 8. Jul 2005
6 Beiträge
 
Delphi 7 Professional
 
#1

RC4 Stromdekorierer verwenden

  Alt 10. Jul 2005, 08:40
Hallo,

ich habe mich in den letzten Tagen mit dem RC4 Stromdekorierer beschäftigt und stehe vor einem kleinen Problem. Ich habe ein Programm, das mit MemoryStreams arbeitet. Ich hatte in letzter Zeit nach einer Verschlüsselungsmöglichkeit für besagte Streams gesucht und das hier gefunden.
Allerdings scheine ich das Beispiel von Maximov über die Benutzung nicht ganz zu verstehen. Zwar funktioniert es mit FileStreams wunderbar, aber es sollte doch auch möglich sein, MemoryStreams zur direkten Weiterverwendung zu benutzen.
Ich schreibe das hier jetzt, da ich Maximov per PM nicht erreichen kann.

Verschlüsseln:
Delphi-Quellcode:
var
  MS1, MS2: TMemoryStream;
  CodeStream: TRCxStreamDecorator;
begin
  // MS1 erhält hier einen Inhalt
  (...)
  CodeStream := TRCxStreamDecorator.Create(MS2, False);
  CodeStream.Password := 'Passwort';
  CodeStream.WriteSalt;
  MS1.SaveToStream(CodeStream);
  (...)
  // MS2 soll nun den verschlüsselten Stream enthalten zwecks Weiterverwendung
  
  CodeStream.Free;
  MS1.Free;
  MS2.Free;
end;
Entschlüsseln:
Delphi-Quellcode:
var
  MS1, MS2: TMemoryStream;
  CodeStream: TStream;
begin
  // MS1 erhält hier den verschlüsselten Stream
  (...)
  CodeStream := TRCxStreamDecorator.Create(MS1, False, 'Passwort', emEncodeWriting);
  (CodeStream as TRCxStreamDecorator).ReadSalt;
  MS2.LoadFromStream(CodeStream);
  (...)
  // MS2 soll nun den entschlüsselten Stream enthalten zwecks Weiterverwendung
  
  CodeStream.Free;
  MS1.Free;
  MS2.Free;
end;
An dieser Stelle bekomme ich einen "Stream-Lesefehler":
Delphi-Quellcode:
procedure TRCxStreamDecorator.ReadSalt;
(...)
    ReadBuffer(Pointer(Salt)^, Size);
(...)
Ich hoffe, hier kennt sich jemand damit aus.
  Mit Zitat antworten Zitat