![]() |
Ganz einfache Dateiverschlüsselung
Hi @all,
wie kann ich ganz einfach eine Datei verschlüsseln und nachher wieder entschlüsseln? Ich hab zwar schon ein paar Codes mit der Suche gefunden, aber das blick ich irgendwie nicht ganz... :stupid: |
Re: Ganz einfache Dateiverschlüsselung
Was hast du gefunden und was "blickst" du nicht?
|
Re: Ganz einfache Dateiverschlüsselung
Zitat:
|
Re: Ganz einfache Dateiverschlüsselung
ganz einfach ?
z.B. XOR |
Re: Ganz einfache Dateiverschlüsselung
wenn du dec schon hast schau dir doch bitte das sample davon an, da ist alles enthalten was du brauchst, aber ein tip: die klassen unterstützen TStream -> TFileStream :-)
|
Re: Ganz einfache Dateiverschlüsselung
Zitat:
Zitat:
|
Re: Ganz einfache Dateiverschlüsselung
Delphi-Quellcode:
Einfacher gehts ja garnicht mehr mit. Allerdings auf Grund dieser Einfachheit ist natürlich auch die Flexibilität und erreichbare Sicherheit eingeschränkt. Soll heissen das man es um einiges besser machen könnte, dafür aber dann ausgefeilterte und komplexere Techniken anwenden muß.
uses Cipher;
with TCipher_Rijndael.Create('Passwort', nil) do try EncodeFile('c:\test.txt', 'c:\test.bin'); finally Free; end; Obiger Vorschlag ist also eine Minimallösung die aber bei WEITEM sicherer ist als eine XOR Verschlüsselung oder andere nicht anerkannte Verfahren. Gruß hagen |
Re: Ganz einfache Dateiverschlüsselung
Vielen Dank für den Code! :thuimb: Werd ihn gleich ausprobieren!
|
Re: Ganz einfache Dateiverschlüsselung
Irgendwie funzt der Code nicht ganz! Der Compiler will irgendwie den Typ TCipher_Rijndael nicht erkennen! Den Pfad, wo die Units liegen, hab ich in den Bibliothekspfaden drin und ich hab die Units vorher auch so umgeschrieben, wie Hagen es in
![]() |
Re: Ganz einfache Dateiverschlüsselung
Delphi-Quellcode:
???
uses Cipher;
Gruß Hagen |
Re: Ganz einfache Dateiverschlüsselung
Hab ich drinne! :wink:
Also wenn ich die Komponenten installieren will, dann werden 2 Units nicht gefunden: BigNum, BNG! :gruebel: |
Re: Ganz einfache Dateiverschlüsselung
Schmeiß diese Units aus der Uses Klausel raus, sie sind nicht bestandteil des Parts I.
Gruß Hagen |
Re: Ganz einfache Dateiverschlüsselung
Jetzt kommen aber andere Fehler:
Code:
Oder muss ich diese Unit vielleicht gar nicht installieren!?
[Fehler] OTPass.pas(18): Undefinierter Bezeichner: 'TBase'
[Fehler] OTPass.pas(21): Undefinierter Bezeichner: 'TRandom_BBS' [Fehler] OTPass.pas(99): Operator oder Semikolon fehlt [Fehler] OTPass.pas(111): Undefinierter Bezeichner: 'TNumSettings' [Fehler] OTPass.pas(114): Undefinierter Bezeichner: 'NumSettings' [Fehler] OTPass.pas(119): Undefinierter Bezeichner: 'StrBase' [Fehler] OTPass.pas(120): Undefinierter Bezeichner: 'StrBlocks' [Fehler] OTPass.pas(121): Undefinierter Bezeichner: 'StrSeparator' [Fehler] OTPass.pas(123): Undefinierter Bezeichner: 'StrPadding' [Fehler] OTPass.pas(125): Operator oder Semikolon fehlt [Fehler] OTPass.pas(129): Operator oder Semikolon fehlt [Fehler] OTPass.pas(134): Operator oder Semikolon fehlt [Fehler] OTPass.pas(134): Inkompatible Typen [Fehler] OTPass.pas(135): Operator oder Semikolon fehlt [Fehler] OTPass.pas(135): Nicht genügend wirkliche Parameter [Fehler] OTPass.pas(140): Operator oder Semikolon fehlt [Fehler] OTPass.pas(141): Operator oder Semikolon fehlt [Fehler] OTPass.pas(141): Operator oder Semikolon fehlt [Fehler] OTPass.pas(165): Operator oder Semikolon fehlt [Fehler] OTPass.pas(165): Zu viele Parameter [Fehler] OTPass.pas(166): Operator oder Semikolon fehlt [Fehler] OTPass.pas(166): Anweisung erforderlich, aber Ausdruck vom Typ 'Integer' gefunden [Fehler] OTPass.pas(167): Operator oder Semikolon fehlt [Fehler] OTPass.pas(176): Operator oder Semikolon fehlt [Fataler Fehler] DEC.dpk(45): Verwendete Unit '..\Lib\DEC\OTPass.pas' kann nicht compiliert werden |
Re: Ganz einfache Dateiverschlüsselung
Korrekt, OTPass.pas kannste ebenfalls rausschmeisen. Wo hast du denn diese krumme DEC Version her ? Normalerweise sind diese Units per DEFINES deaktiviert. Es gibt DEFINES für die unterschiedlichen DEC Distibutionen, nur der Part I ist publiziert. Aber alle diese Units sind oder waren Bestandteil des damaligen Part II vom DEC.
Die einzigste Unit die du instalieren musst, ist DECReg.pas. Normalerweise musste sogar garnichts installieren, denn das Konzept der DEC Klassenhierarchie benötigt keine wichtigen Komponenten. D.h. einfach einen Suchpfad zum DEC anlegen, Units in die Uses Klausel deines Projektes einbinden, die TCipher_XXX/THash_XXX oder TStringFormat_XXX Klassen direkt benutzen und compilieren, fertig. Gruß Hagen |
Re: Ganz einfache Dateiverschlüsselung
Zitat:
Naja, ich probiers heut im Lauf des Tages nochmal... |
Re: Ganz einfache Dateiverschlüsselung
Hm, das kann doch garnicht sein. Ich habe von Zeit zu zeit immer mal wieder EMails von Leuten denen es genauso geht wie dir. Aber das sind nur 10 bis 12 Leute von 1000'enden.
Du entpackst das DEC aus dem ZIP mit Ordnern. Danach sollte ein Verzeichnisbaum enstehen wie ..\DEC\Source\ usw. In deinem Projekt wird nun im Suchpfad exakt der Pfad ..\DEC\SOURCE\ hinzugefügt. Nun brauchst du in der Uses Klausel deiner Unit nur noch die Units DECUtil, Hash, Cipher einbinden. Danach sollte es SOFORT laufen. Dein beschriebenes Unit Problem kann nur entstehen wenn du die Unit DECReg.pas benutzt. Diese wird aber AUSSCHLIESSLICH nur in DesignTime Packages eingebunden, und auch dann nur wenn man die beiden Komponenten TCipherManager und THashManager benötigt um Zb. das DEMO Projekt neu zu compilieren. Gruß Hagen |
Re: Ganz einfache Dateiverschlüsselung
Also, ich hab das jetzt mal genau so versucht, wie du es gesagt hast, es geht aber immer noch nicht! :cry:
Delphi-Quellcode:
Und das sind die Fehler:
uses [...] , DECUtil, Hash, Cipher;
procedure TForm1.Button1Click(Sender: TObject); begin //Verschlüsseln: with TCipher_Rijndael.Create('Passwort', nil) do try EncodeFile(app + 'Bild1.jpg', app + 'Bild2.jpg'); finally Free; end; end;
Code:
[Fehler] Unit1.pas(1137): Undefinierter Bezeichner: 'TCipher_Rijndael'
[Fehler] Unit1.pas(1137): 'DO' erwartet, aber Bezeichner 'Create' gefunden [Fehler] Unit1.pas(1139): Undefinierter Bezeichner: 'EncodeFile' [Fataler Fehler] Browser.dpr(20): Verwendete Unit 'alt\Unit1.pas' kann nicht compiliert werden |
Re: Ganz einfache Dateiverschlüsselung
Könnte es sein das du ein anderes Fremdprodukt benutzt das ebenfalls eine Unit "Cipher" enthält ??
Anders kann ich's mir nicht erklären. Gruß hagen |
Re: Ganz einfache Dateiverschlüsselung
bei mir gehts auch nicht. und ich hab bestimmt keine andere unit cipher...
|
Re: Ganz einfache Dateiverschlüsselung
Oh mann ihr macht mich fertig, heute ;)
Geht mal auf DSP = Delphi Super Page und downlaoded von dort das DEC. Dann installiert ihr das ZIP mit Verzeichnissen. Nun fügt ihr in den Projektoptionen den Pfad zu den Sourcen hinzu. Dann obigen Source ins projekt kopiert. Das MUSS laufen, es sind doch nur 5 Zeilen Source. Gruß Hagen |
Re: Ganz einfache Dateiverschlüsselung
Zitat:
![]() |
Re: Ganz einfache Dateiverschlüsselung
Nun ja, du gehst auf die Seite, klickst auf Delphi5 und suchst in der Kategorie "Compression, Encryption" und hälst ausschau nach eine Komponennte von "Hagen Reddmann". Letztendlich müsstest du auf
![]() |
Re: Ganz einfache Dateiverschlüsselung
thx! Werde die Komponente mal so, wie Hagen es gesagt hat, installieren! :wink:
Edit: Dieses schlug fehl! Ich hab jetzt eine einfache XOR-Verschlüsselung verwendet, da diese für diesen Zweck voll und ganz ausreicht! 8) |
Re: Ganz einfache Dateiverschlüsselung
Zitat:
[Edit]Ich habe den "Fehler" glaube ich gefunden. TCipher_Rijndael ist nicht in der Unit Cipher sondern in Cipher1. |
Re: Ganz einfache Dateiverschlüsselung
Zitat:
|
Re: Ganz einfache Dateiverschlüsselung
Ist auch klar, denn in der Unit Cipher ist Rijndael nicht implementiert. Aber in Cipher1 schon. Und was mir grad aufgefallen ist:
In Cipher sind andere Verschlüsselungen als in Cipher1. |
Re: Ganz einfache Dateiverschlüsselung
lol. hat da wohl einer den überblick verloren ;-)
|
Re: Ganz einfache Dateiverschlüsselung
Ach shit, natürlich Cipher1.pas ist richtig. Später, als aus Rijndael der offizelle AES Gewinner wurde, also sozusagen zum heutigen Standard, habe ich dies geändert. Leider ist aber meine inoffizielle Version vom DEC somit nicht mehr gleich mit der offizellen Version 3.0 aus dem Netz.
Ich hoffe mir wird verziehen ;) Gruß Hagen |
Re: Ganz einfache Dateiverschlüsselung
bei so einer hervoragenden freeware-komponennte, wird uns nichts anderes übrig bleiben als dir zu verzeihen :mrgreen:
|
Re: Ganz einfache Dateiverschlüsselung
Zitat:
Wenn du mir die Texte lieferst - müseen nicht viel und lang sein, nur um was es sich handelt und was bei der installation zu beachten ist, könnte ich mich hinreißen lassen dies für dich zu übernehmen und die Seite für dich zumachen und auf meinem Webspace zu legen: ![]() |
Re: Ganz einfache Dateiverschlüsselung
hey luckie das ist passwortgeschützt!
p.s.: sogar ich würd das machen ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 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