AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiverschlüsselung mit DEC (5.2)

Ein Thema von Schwedenbitter · begonnen am 15. Jun 2010 · letzter Beitrag vom 17. Jun 2010
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 12:04
Hallo,

in einer Client-Server-Umgebung möchte ich, dass der Server dem Client eine Datei zur Verfügung stellt. Diese soll verschlüsselt werden. Dem Client werden dann nur der Name/Pfad der verschlüsselten Datei auf einem Fileserver und das Passwort übermittelt. Nun möchte ich aus Sicherheitsgründen auf dem Client die Datei nicht zwischenspeichern, sondern als TMemoryStream weiter verarbeiten.
Ich verwende dazu die DEC und einen stark abgewandelten Code aus der Demo (vergleichbar hiermit).

Das Verschlüsseln klappt. Wenn ich mit dem Server wieder entschlüssele, gibt es kein Problem. Wenn ich aber mit dem Client das Entschlüsseln versuche, bekomme ich eine Exception mit der Fehlermeldung "Class 89504E47 is not registered". Es hat auch nichts gebracht
Delphi-Quellcode:
Initialization
  IdentityBase:=$89504E47;
einzufügen.

Ich gehe der Kommentierung nach davon aus, dass es daran liegt, dass nur ein und dasselbe Programm ver- bzw. entschlüsseln darf. Ich begreife nicht, wie ich den Code abändern kann/muss, damit es klappt. Zudem möchte ich (auch) gern sicherstellen, dass nur der passende Client dechiffriert.

Ich habe die von mir verwendete Unit mal beigefügt. Diese wird sowohl vom Server als auch vom Client verwendet. Es betrifft dort die Funktionen EncryptFile() und DecryptFile().

Danke für die Hinweise, Alex
Angehängte Dateien
Dateityp: zip Encryption_p.zip (2,1 KB, 27x aufgerufen)
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 12:09
registrierst du die algorithmen? z.b. so:

Delphi-Quellcode:
procedure RegisterClasses;
begin
  TFormat_Copy.register;
  TFormat_HEX.register;
  TFormat_MIME64.register;
  TFormat_MIME32.register;

  THash_SHA512.register;
  THash_Whirlpool.register;

  TCipher_Twofish.register;
  TCipher_Rijndael.register;

  SetDefaultCipherClass(TCipher_Rijndael);
  SetDefaultHashClass(THash_SHA512);
  IdentityBase := $84282255;
end;
das mußt du auch auf dem client machen, dann sollte das klappen.
Gruß
Cookie
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 12:16
Danke für die schnelle Antwort!
registrierst du die algorithmen? ...
Ich dachte schon. In einem anderen Beispielcode hatte ich das mal so gesehen. Dort wurde es über globale Variablen gemacht, denen gleich Standardwerte mitgegeben wurden:
Delphi-Quellcode:
Var
   AKDFIndex : LongWord = 1;
   ACipherMode : TCipherMode = cmCBCx;
   AHashClass : TDECHashClass = THash_Whirlpool;
   ACipherClass : TDECCipherClass = TCipher_Rijndael;
   ATextFormat : TDECFormatClass = TFormat_Mime64;
Oder sind das verschiedene Dinge?

Ich werde Deinen Vorschlag mal ausprobieren. <- klappt leider nicht

[edit]Ich habe auch den - übersehenen - Teil aus dem Codebeispiel jeweils als erste Zeilen so in die Funktionen geschrieben
Delphi-Quellcode:
   SetDefaultCipherClass(TCipher_Rijndael);
   SetDefaultHashClass(THash_SHA1);
   IdentityBase := $84485225;
   RegisterDECClasses([TCipher_Rijndael, THash_SHA1]);
Das klappt leider auch nicht[/edit]
Gruß, Alex
Alex Winzer

Geändert von Schwedenbitter (15. Jun 2010 um 12:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 12:31
Danke für die schnelle Antwort!
registrierst du die algorithmen? ...
Ich dachte schon. In einem anderen Beispielcode hatte ich das mal so gesehen. Dort wurde es über globale Variablen gemacht, denen gleich Standardwerte mitgegeben wurden:
Delphi-Quellcode:
Var
   AKDFIndex : LongWord = 1;
   ACipherMode : TCipherMode = cmCBCx;
   AHashClass : TDECHashClass = THash_Whirlpool;
   ACipherClass : TDECCipherClass = TCipher_Rijndael;
   ATextFormat : TDECFormatClass = TFormat_Mime64;
Oder sind das verschiedene Dinge?

Ich werde Deinen Vorschlag mal ausprobieren.

Gruß, Alex
ja sind unterschiedliche dinge.

das wichtige is das registrieren.

THash_Whirlpool.register; das kannst du im oncreate event machen, oder sonst wo bevor du mit dem verschlüsseln anfängst. das mußt du im server sowie auch im client machen.
Gruß
Cookie
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 12:45
das kannst du im oncreate event machen, oder sonst wo bevor du mit dem verschlüsseln anfängst.
Da ich den Code in einer eigenen Unit untergerbacht habe, die wegen 4 Funktionen nicht objektorientiert ist, habe ich kein OnCreate(). Aber ich habe es in der Initialization probiert, was m.E. dasselbe bewirken sollte. Aber es klappt trotzdem nicht.
das mußt du im server sowie auch im client machen.
Das ist mir klar. Aus diesem Grunde wird die Unit sowohl beim Server als auch beim Client eingebunden und verwendet.
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 13:29
kannst du mit dem server entschlüsseln?
Gruß
Cookie
  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 15:49 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