Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RC4 Stromdekorierer verwenden (https://www.delphipraxis.net/49363-rc4-stromdekorierer-verwenden.html)

derDoc 10. Jul 2005 08:40


RC4 Stromdekorierer verwenden
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz