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

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 15. Jun 2010, 15:04
kannst du mit dem server entschlüsseln?
Ja. Das habe ich zu Testzwecken gleich als erstes gemacht:
Delphi-Quellcode:
   S:=CreateKey;
   S2:=NameCryptFile(EdPollDir.Text, 'enc');
   Try
      EncryptFile(Strings[0] + '_sign.png',// zugehörige Unterschrift
         S2, S);
      DecryptFile(S2, 'C:\Test_Server.png', S);
      ...
   Except
      // Fehlerbehandlung, falls Verschlüsseln nicht klappt
   End;
Ich habe dann im Stamm von C: die Datei, die sich problemlos öffnen lässt und mit dem Original übereinstimmt. Ich verwende einunddieselben Functionen im Client und im Server und bin entsprechend ratlos...

Gruß, Alex
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, 15:50
sehr merkwürdig sollte eigentlich klappen. fällt mir auch nix zu ein.
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 17. Jun 2010, 10:14
sehr merkwürdig sollte eigentlich klappen.
Und es wird noch merkwürdiger:

Ich lasse mir nun das Passwort, die Datei etc. anzeigen (ShowMessage()), die alle übereinstimmen. Auch habe ich mit separatem Code das Verschlüsseln und Entschlüsseln mit separaten Programmen* trainiert . Das klappt und noch besser wird es, wenn der Server verschlüsselt und ich mit meinem separaten Entschlüsselungs-Programm (Siehe *) die Datei erfolgreich und ohne jede Fehlermeldung entschlüsseln kann.
Das kann ich nun überhaupt nicht mehr nachvollziehen Daran dass es ein anderes Programm ist, kann es also nicht liegen.

Bevor ich es vergesse:
* in meinen separaten Testprogrammen stehen hier übrigens nur 3 Zeilen und auch das Entfernen der Kommentare bringt nichts:
Delphi-Quellcode:
Initialization
   Randomize;
// THash_SHA1.Register; // es läuft auch ohne ?!?
// TCipher_Rijndael.Register; // es läuft auch ohne ?!?
   SetDefaultHashClass(THash_SHA1);
   SetDefaultCipherClass(TCipher_Rijndael);
Der Fehler MUSS also in meinem Client-Programm liegen. Da ich meine Unit Encryption in allen Programmen unverändert benutze, KANN er hier nicht liegen. Kann mir mal bitte jemand einen Hinweis geben, wie/wo ich anfangen kann zu suchen? Ich möchte ungern meinen gesamten Client hier reinstellen. Das sind mehrere tausend Programmzeilen. Das kann ich keinem zumuten.

[scherz] Von mir aus auch damit: [/scherz]

der völlig ratlose Alex
Alex Winzer
  Mit Zitat antworten Zitat
Schwedenbitter

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

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 17. Jun 2010, 10:42
Ganz dummer Fehler:
Delphi-Quellcode:
Type
   TSignJob      = Packed Record
      FileName      : String;
      Password      : String;
      CryptFile      : String;
   End;
Ist an sich selbsterklärend. Wenn man aber im Träumen dem Decrypter statt dem .CryptFile die unverschlüsselte Datei (.FileName) übergibt, braucht man sich über Fehler nicht zu wundern.
Jetzt klappt es!

Wünschenswert wäre es nur, wenn die Fehlermeldungen nicht so kryptisch, sondern besser zu verstehen wären. Wäre dieser Wunsch etwas für hier?

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

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

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 17. Jun 2010, 11:24
wär auch komisch gewesen, wenn das nicht klappt.
Gruß
Cookie
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 17. Jun 2010, 12:21
Hi Alex,

Delphi-Quellcode:
Initialization
   Randomize;
Das bewirkt in der DEC nichts, ist ja die Delphi Funktion. Was Du suchst, heißt RandomSeed:
http://www.delphipraxis.net/429884-post.html

Die Fehlermeldungen werden in der DEC 5.3 schon etwas besser, mal gucken, ob ich diesen spezialgelagerten Sonderfall irgendwie noch etwas hübscher machen kann.

Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 17. Jun 2010, 13:38

Die Fehlermeldungen werden in der DEC 5.3 schon etwas besser, mal gucken, ob ich diesen spezialgelagerten Sonderfall irgendwie noch etwas hübscher machen kann.
Was willst du da verbessern können ?

Das System bekommt eine 4 Bytes ID, ausgelesen aus einer falsch kodierten Datei. Das System findet unter dieser ID keine registerierte Klasse. Die Funktion die diese Klasse ermittelt bekommt als Parameter nur diese ID und kann somit auf Grund fehlender Informationen auch nur einen Fehler bringen der sagt: Hallo ? Unter dieser ID wurde keine Klasse registriert.

Der Punkt ist also: Derjenige der diese DEC Funktionen in higher-level Funktionen benutzt hat sicher zu stellen das auch eine aussagekräftigere Fehlermeldung erfolgt wenn seine Funktion auf falschen Daten arbeitet. In meinen Augen gibt es also kein Defizit im DEC sondern nur in der Art&Weise wie der Programmier das DEC benutzt hat.

Mal einfach gefragt: wie soll DECClassByIdentity(ID: Cardnal); denn hellsehen können das der Programmierer diese Funktion aus einem Kontext heraus benutzt in dem er in seiner Funktion eine ungültige Datei übergeben kann ?

Du kannst da versuche was du willst, aus Sicht der Funktion DECClassByIdentity() steht dir nur die ID und die Liste aller registrierten DEC Klassen als Information zur Verfügung. Und wenn es keine Klasse mit dieser ID gibt dann kann der Fehler nur lauten: Es gibt keine registrierte Klasse mit dieser ID.

Spätestens nach dieser Fehlermeldung ist klar:
1.) entweder wurde die Klasse nicht registriert
2.) oder die ID ist falsch

Übrigens: die IdentityBase, wenn man sie verändert, sollte immer vor allen Aufrufen von TDECClass.Register manipuiliert werden. Das Identity-System im DEC kann ID-Duplikate nicht ausschließen per se. Deshalb wird beim .Register einer Klasse auch überprüft ob es eine andere Klasse gibt die die gleiche ID besitzt. Sollte das der Fall sein muß Identitybase auf einen anderen Wert gesetzt werden. Die Vorgehensweise ist also so:

1.) Identitybase auf eigenen Wert setzen
2.) alle zu benutzenden und zukünftig zu benutzenden DEC Klassen registrieren.
3.) kommt es zu einem Fehler, von wegen nicht eindeutige ID, dann neue IdentityBase wählen und bei Punkt 2.) weiter machen.

Gruß Hagen

PS: sorry das ich erst jetzt auf diesen Thread gestoßen bin, sonst hätte ich dir schon viel früher helfen können.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

AW: Dateiverschlüsselung mit DEC (5.2)

  Alt 17. Jun 2010, 13:53
Hallo Hagen,

Was willst du da verbessern können ?
Den Text. Um es klarer zu sagen: Mit "hübscher" meinte ich nur die Fehlermeldung. Die Logik des Klassenmanagement ist trivial, die beiden Fehlerfälle ebenso.

Mein Hinweis auf die Änderungen an der Fehlerbehandlung bezogen sich auf den DEC 5.3 Thread, wo ich iirc bereits auf vererbte Exceptiontypen eingehe. Dies läßt differenziertere Behandlung von Fehlerfällen auf nachgelagerten Schichten zu.

Gruß,
Assertor

PS: sorry das ich erst jetzt auf diesen Thread gestoßen bin, sonst hätte ich dir schon viel früher helfen können
Ich bin doch auch eben erst drüber gestolpert
Frederik
  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 08:53 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