![]() |
Re: Dateien verschlüsseln - aber wie?
also ich weiß, ja nicht, wie du damit klar gekommen bist, aber wenn ich das mache:
Delphi-Quellcode:
Fann bekomme ich folgende Fehlermeldungen:
uses
Hash, Cipher, DECUtil; ... ... ... initialization RegisterDECClasses([TCipher_Blowfish, TCipher_SCOP, TCipher_Rijndael, THash_MD4, THash_SHA1, THash_RipeMD128]);
Code:
Zeile 74 ist die oben gepostete Zeile.
[Fehler] Unit1.pas(74): Undefinierter Bezeichner: 'RegisterDECClasses'
[Fehler] Unit1.pas(74): Ordinaltyp erforderlich [Fehler] Unit1.pas(74): Inkompatible Typen: 'Integer' und 'Class reference'[Fehler] Unit1.pas(74): Inkompatible Typen: 'Integer' und 'Class reference'[Fehler] Unit1.pas(74): Inkompatible Typen: 'Integer' und 'Class reference'[Fehler] Unit1.pas(74): Inkompatible Typen: 'Integer' und 'Class reference' Und was meinst du damit: Zitat:
Ich glaube, wenn wir es geschaft haben mit dem DEC umzugehen, dann stelle ich mein Programm, zum Verschlüsseln einer Datei hier rein, als Anschauungsobjekt. :roll: |
Re: Dateien verschlüsseln - aber wie?
So, irgendwie hab eich es jetzt geschaft:
Delphi-Quellcode:
Mit:
procedure EncodeFile(Filename, PW: String; hWnd: THandle);
var SrcStream: TStreamProgressAdapter; DestStream: TFileStream; begin SrcStream := TStreamProgressAdapter.Create(TFileStream.Create(Filename, fmOpenRead or fmShareDenyNone), 0, hWnd); if Assigned(SrcStream) then begin try DestStream := TFileStream.Create(Filename+EXTENSION, fmCreate); if Assigned(DestStream) then begin try with CipherClass.Create(PW, nil) do begin Mode := cmCFB; InitKey(PW, nil); EnCodeStream(SrcStream, DestStream, -1); end; finally FreeAndNil(DestStream); end; end; finally FreeAndNil(SrcStream); end; end; end;
Delphi-Quellcode:
Das ganze ist jetzt noch ohne Hash der original Datei und ohne Datei-Header und es ist noch nicht in einem Thread, was auch noch kommt.
CipherClass: TCipherClass = TCipher_Blowfish;
|
Re: Dateien verschlüsseln - aber wie?
@ Luckie:
Das was ich gepostet hab ist mein gesamter Code. Du musst nur noch uses hinzufügen, ansonsten nichts. initialization lass weg! Das geht eh nicht. Ich hatte auch schon vor meinen Code zur Verfügung zu stellen, aber vorher will ich es noch irgendwie schaffen diese Prüfsumme (hash-Wert) in den Header zu schreiben und beim Entschlüsseln wieder zu lesen. Kannst du mir da helfen? Danke, Daniel. :mrgreen: |
Re: Dateien verschlüsseln - aber wie?
Zitat:
Das kann garnicht funktionieren da ihr leider die "alte" Version vom DEC habt. In dieser wurden die registrierten Listen der Algorithmen für die Cipher/Hashs separat verwaltet. Erst in meiner Version vom DEC habe ich dies vereinfacht und alle Klassen werden gemeinsam verwaltet. Also Asche auf mein Haupt und Entschuldigung für die Verwirrungen die ich damit gestifftet habe, es tut mir wirklich leid. Vielleicht sollte ich wirklich anfangen und das DEC nochmals verbessern, und die ganzen neuen Ideen und Designänderungen der letzten 4 Jahre berücksichtigen. Ich hatte schon mehrmals geplant DEC komplett neu und besser zu machen, habe es aber immer wieder weg geschoben. Es gibt einige Dinge die ich alleine auf Grund meines besseren Verständnisses der Kryptographie heute nicht mehr so bauen würde wie im DEC. Gruß Hagen |
Re: Dateien verschlüsseln - aber wie?
HIIIILLLFFFEEE!!!! :shock:
Ich habs jetzt ja fast geschafft (siehe Quellcode auf der vorherigen Seite). Aber wie kann ich einen String (mit dem Original-Hash-Wert der Datei) in den Dateiheader der verschlüsselten Datei schreiben, diesen dann vor dem Entschlüsseln wieder auslesen und auch wieder entfernen????? Das ist mein einziges Problem, das es noch gibt. :gruebel: @ Hagen: Wenn ich eine Datei wipen will, kann ich das so machen?: :roll:
Delphi-Quellcode:
Scheinbar wird die Datei dann überschrieben - aber nur gelöscht, wenn ich noch DeleteFile hinzufüge.
with DefCipherClass.Create('',nil)
do begin try InitKey('',nil); CodeFile(Input, Input, paWipe); DeleteFile(Input); finally Free; end; end; Oder ist es besser, wenn ich das Wipen mit der TRandom-Funktion mache? :?: THX, Daniel. :wiejetzt: |
Re: Dateien verschlüsseln - aber wie?
Zitat:
Zitat:
Das sichere Löschen der Datei, ist ein Thema für sich. Im Moment neige ich dazu dass der benutzer selber dafür zu sorgen hat, mittels eines anderen Programmes pder was weiß ich wie. @Hagen: Ich arbeite hier mit der 3.0, Datum habe ich jetzt nicht im Kopf. |
Re: Dateien verschlüsseln - aber wie?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich kapier's nicht! Das Ding will einfach nicht richtig mit dem Header umgehen.
Ich poste euch hier mal meinen Code. Vielleicht könnt ihr das Problem ja beheben: Wenn ich eine Datei verschlüssel, dann geht alles. Nur beim Entschlüsseln treten dann Fehler ohne Ende auf! Und zwar meiner Meinung nach beim Auslesen des Headers. :( Nu gut, wer mir hilft das Problem mit dem Header zu beheben, der darf meinen Code natürlich auch für eigene Zwecke verwenden! THX, Daniel. :bounce2: |
Re: Dateien verschlüsseln - aber wie?
Ich sagte doch, gib mir noch etwas Zeit, dann bin ich fertig. Ideen wie ich den Header da dranbekomme habe ich schon, muß mir nur noch ausdenken, wie ich es am übersichtlichsten und am leicht verständlichsten code.
|
Re: Dateien verschlüsseln - aber wie?
Wie komme ich von der CipherClass (z.B. TCipher_Blowfish) zu CiperIdentity, um sie im Header zu speichern? Gleiche Frage für den Hash-Algo.
|
Re: Dateien verschlüsseln - aber wie?
Wieso willst du das machen? Du kannst doch einfach in deinen Record direkt eine Variable vom Typ TCipherClass einbauen. Ist doch viel einfachen.
MfG. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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