AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TChipher in Funktion neu initialisieren mit neuem Passwort
Thema durchsuchen
Ansicht
Themen-Optionen

TChipher in Funktion neu initialisieren mit neuem Passwort

Ein Thema von thy · begonnen am 7. Aug 2004 · letzter Beitrag vom 24. Sep 2004
Antwort Antwort
thy

Registriert seit: 7. Aug 2004
Ort: Bonn
3 Beiträge
 
#1

TChipher in Funktion neu initialisieren mit neuem Passwort

  Alt 7. Aug 2004, 08:55
Hallo ich bin neu hier, also bitte nich hauen...

ich möchte gerne in einer Funktion einen Stream 2x verschlüsseln mit unterschiedlichen Passwörtern und versuche dafür TCipher_Blowfish erneut zu erstellen mit einem neuen Passwort, aber das klappt nicht. Es wird immer nur das Passwort der ersten Initialisierung verwendet, aber warum??? Ich habe es auch schon mit "destroy" und "nil" probiert aber es klappt alles nicht...

Hier der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stream, stream_neu: TMemoryStream;
var groesse: LongInt;
begin
 stream := TMemoryStream.Create;
 stream_neu := TMemoryStream.Create;
 stream.LoadFromFile('C:\test.txt');
 groesse := stream.Size;

 with TCipher_Blowfish.Create('', nil) do
 try
  InitKey('test', nil);
  EncodeStream(stream, stream_neu, groesse);
  stream_neu.SaveToFile('c:\test1.txt');
 finally
  Free;
 end;

 with TCipher_Blowfish.Create('', nil) do
 try
  InitKey('test2', nil);
  EncodeStream(stream, stream_neu, groesse);
  stream_neu.SaveToFile('c:\test2.txt');
 finally
  Free;
 end;

 stream.Destroy;
 stream_neu.Destroy;

end;
Für jeden Hinweis wäre ich überaus dankbar!!!

Viele Grüsse,
Tom

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TChipher in Funktion neu initialisieren mit neuem Passwo

  Alt 7. Aug 2004, 09:42
Hai thy,

wenn ich das richtig Sehe musst Du deine Streams vor dem zweiten Verschlüsseln wieder auf den Anfang positionieren. (Genaueres wird wohl wieder nur negaH wissen).

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 stream, stream_neu: TMemoryStream;
 groesse: LongInt;
begin
  stream := TMemoryStream.Create;
  stream_neu := TMemoryStream.Create;
  try
    stream.LoadFromFile('C:\test.txt');
    groesse := stream.Size;
    with TCipher_Blowfish.Create('test', nil) do
    begin
      try
        EncodeStream(stream, stream_neu, groesse);
        stream_neu.SaveToFile('c:\test1.txt');
      finally
        Free;
      end;
    end;
    stream.Position := 0; // Position des Quellstreams auf Anfang setzen.
    stream_neu.Position := 0; // Position des Zielstreams auf Anfang setzen.
    with TCipher_Blowfish.Create('test2', nil) do
    begin
      try
        EncodeStream(stream, stream_neu, groesse);
        stream_neu.SaveToFile('c:\test2.txt');
      finally
       Free;
      end;
    end;
  finally
    FreeAndNil (stream);
    FreeAndNil (stream_neu);
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
thy

Registriert seit: 7. Aug 2004
Ort: Bonn
3 Beiträge
 
#3

Re: TChipher in Funktion neu initialisieren mit neuem Passwo

  Alt 7. Aug 2004, 10:23
Hi Sharky,

vielen Dank für den Tipp. Das habe ich komplett übersehen und jetzt klappt es!!!

Danke! Gruss,
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TChipher in Funktion neu initialisieren mit neuem Passwo

  Alt 7. Aug 2004, 10:25
Zitat von thy:
....und jetzt klappt es!!! ...
Freut mich

Ach ja: "Herzlich Willkommen in der Delphi-PRAXIS"
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
thy

Registriert seit: 7. Aug 2004
Ort: Bonn
3 Beiträge
 
#5

Re: TChipher in Funktion neu initialisieren mit neuem Passwo

  Alt 7. Aug 2004, 10:32
was für ein toller Einstand. Meine erste Frage und so schnell eine erfolgreiche Hilfe. Ich bin schwer glücklich, denn ich habe mir die letzten Nächte damit um die Ohren geschlagen eine Lösung dafür zu finden...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: TChipher in Funktion neu initialisieren mit neuem Passwo

  Alt 24. Sep 2004, 14:58
@thy, @sharky,

das ist aber kein DEC spezifisches Problem, sondern ein "konzeptionelles Feature" aller TStream Operationen. Also auch zB. beim Laden einer Klasse aus einer DFM in einem Stream wird der interne Positionszeiger nicht automatisch an den Anfang zurückgesetzt. Dies ist absolut logisch denn im gleichen Stream könnten viele sequentiell gespeicherte DFM's == Daten abgelegt sein. Somit darf eine beliebige Streambasierte Operation niemals den Stream-Zeiger automatisch umsetzen. Dies ist immer Aufgabe des Programmieres.

Gruß hagen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz