Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateien verschlüsselt abspeichern (https://www.delphipraxis.net/79667-dateien-verschluesselt-abspeichern.html)

Andreas L. 26. Okt 2006 10:05


Dateien verschlüsselt abspeichern
 
Hi,
ich möchte die Konfigurationsdateien einer meiner Projekte nicht editierbar machen. Zuerst dachte ich mir das die Dateien als binärer Stream gespeichert werden. Doch 1. kann das ein erfahrener Anwender schnell knacken und 2. weiß ich nicht wie das geht (gibts nen Workaround?). Kennt jemand eine möglichst sichere Methode? Ja, ich weiß das alles knackbar ist aber die Zielgruppe meines Programms werden wohl nicht gerade Cracker und Programmierer sein. Wichtig wäre mir dabei das ich nach den entschlüsseln den Inhalt der Datei in eine TmemIniFile laden kann. Ich stelle mir das also so vor:

Delphi-Quellcode:
var
ini: tmeminifile;
begin
Entschlüsseln('verschlüsseltedatei.dat', 'temporärentschlüsselt.dat');
ini := tmeminifile.create('temporärentschlüsselt.dat');
ini.writestring('bla', 'blubb', 'dada');
ini.updatefile;
ini.free;
Verschlüsseln('temporärentschlüsselt.dat', 'verschlüsseltedatei.dat');
Weiß da jemand was?

mkinzler 26. Okt 2006 10:12

Re: Dateien verschlüsselt abspeichern
 
Schau dir mal DEC oder TP LockBox an.

Andreas L. 26. Okt 2006 10:24

Re: Dateien verschlüsselt abspeichern
 
Hmm... Leider kann ich es nicht installieren. Ich öffne %DEC%\D7\DEC.dpk mit Delphi und klicke auf Compilieren (die Bibliothekspfade habe ich hinzugefügt). Es kommt die Meldung "Kann Datei CRC.dcu nicht erstellen". Ok, das sie schon existiert habe ich die mal umbenannt: Es kommt der selbe Fehler.

Was mache ich falsch?

Luckie 26. Okt 2006 10:58

Re: Dateien verschlüsselt abspeichern
 
Ich weiß nicht, wo du das DEC runtergeladen hast und welche Version. Die aktuelle Version auf meiner Homepage: http://dec.michael-puff.de kann man nicht mehr installieren, man bindet einfach nur die benötigten Units ein; steht aber auch in der readme-Datei.

Andreas L. 26. Okt 2006 11:04

Re: Dateien verschlüsselt abspeichern
 
Zitat:

Zitat von Luckie
Ich weiß nicht, wo du das DEC runtergeladen hast und welche Version. Die aktuelle Version auf meiner Homepage: http://dec.michael-puff.de kann man nicht mehr installieren, man bindet einfach nur die benötigten Units ein; steht aber auch in der readme-Datei.

Habs ja bei dir runtergeladen. Für was ist dann die DPK-Datei da? Naja, werde mal die readMe lesen.

Mavarik 26. Okt 2006 12:17

Re: Dateien verschlüsselt abspeichern
 
Machs doch nicht so kompliziert...

Ein einfacher Zeichentauscher reicht i.d.R. für 80% aller Anwendungen...

Nur not noch ein Paar füllzeichen einstreuen, fertig!

Frank :coder:

Andreas L. 26. Okt 2006 12:23

Re: Dateien verschlüsselt abspeichern
 
Zitat:

Zitat von Mavarik
Machs doch nicht so kompliziert...

Ein einfacher Zeichentauscher reicht i.d.R. für 80% aller Anwendungen...

Nur not noch ein Paar füllzeichen einstreuen, fertig!

Frank :coder:

Meinst du das würde reichen? Oder was hältst du von den binären Stream? Wie geht der Stream überhaupt? Mit nen FileStream die Datei öffnen und speichern? Wird die dann automatisch binär?

Luckie 26. Okt 2006 12:30

Re: Dateien verschlüsselt abspeichern
 
Nun ja, ein bischen sollte man sich schon mit der Technik auseinandersetzen für die man programmiert. ;)

Wie, wenn nicht binär? Der Computer kennt nur 1 und 0.

Mavarik 26. Okt 2006 12:31

Re: Dateien verschlüsselt abspeichern
 
Zitat:

Zitat von Andreas L.

Meinst du das würde reichen? Oder was hältst du von den binären Stream? Wie geht der Stream überhaupt? Mit nen FileStream die Datei öffnen und speichern? Wird die dann automatisch binär?

Klar...

Schluessel :string = 'qp1w2o3e4i5r6u7t8z9a0ls!"§$%m&/n(x)=cvQPWOEIRUZTALSKDJFHGYMXNCBV';

Sowas in dieser Richtung...
Und dann einfach..
Delphi-Quellcode:

b : byte;
w : word;
for i:=1 to length(DeinString) do
  begin
    w := ord(S[I]);
    w := w + ord(Schluessel[i]);
    S[i] := chr(lo(w));
  end;
Ungetestet...

Frank :coder:

Andreas L. 26. Okt 2006 13:07

Re: Dateien verschlüsselt abspeichern
 
Zitat:

Zitat von Luckie
Nun ja, ein bischen sollte man sich schon mit der Technik auseinandersetzen für die man programmiert. ;)

Wie, wenn nicht binär? Der Computer kennt nur 1 und 0.

Naja, ich meinte jetzt das eine Ini-Datei wenn man Sie einfach speichert ja PlainText ist. ne Exe ist binär. So meinte ich das ;-)

@Mavarik: Was genau macht dein Code? Kannst du ihn ein bisschen erklären?

gothic_mike 26. Okt 2006 13:49

Re: Dateien verschlüsselt abspeichern
 
Hallo,

Zitat:

Zitat von Andreas L.
Hi,
ich möchte die Konfigurationsdateien einer meiner Projekte nicht editierbar machen.
...
Weiß da jemand was?

versuchs mal mit DataFile von hier: http://www.degisy.com/download.php
ganz unten auf der Seite...

Mavarik 26. Okt 2006 13:55

Re: Dateien verschlüsselt abspeichern
 
Zitat:

Zitat von gothic_mike
versuchs mal mit DataFile von hier: http://www.degisy.com/download.php
ganz unten auf der Seite...

Delphi-Quellcode:
  P := pBuf;
  if( FCodeKey <> '' )then
  for I := 0 to BufLen - 1 do
  begin
   P^ := Byte(FCodeKey[1 + ((I - 1) mod Length(FCodeKey))]) xor P^;
   inc(P);
  end;
Ist so irgendwie das gleiche was ich geschrieben hatte.. Nur mit viel Stream overhead für alle Copy/Paste programmierer...

Frank :stupid:

HalloDu 26. Okt 2006 14:24

Re: Dateien verschlüsselt abspeichern
 
Wir hatten doch gestern einen Thread zum Thema Verschlüsselung. Vielleich hilft dir der ja.
Der Thread zum Thema Verschlüsselung

torud 6. Mär 2007 20:05

Re: Dateien verschlüsselt abspeichern
 
Zitat:

Zitat von gothic_mike
versuchs mal mit DataFile von hier: http://www.degisy.com/download.php
ganz unten auf der Seite...

Ich habe mir das mal gezogen, aber ich werde da einfach nicht schlau draus???
Wie kommt das zum Einsatz und wie binde ich es ein?

Ich habe erstmal die pas-Datei in meinen Programmpfad kopiert, aber ich kann einfach nicht darauf zugreifen. Mit installieren ist da nix. Bin ich so doof, oder was mache ich da falsch!?

Klaus01 6. Mär 2007 20:26

Re: Dateien verschlüsselt abspeichern
 
Vielleicht so:

in den uses DataFile miteinbinden.

Dann eine Variable deklarieren:

Delphi-Quellcode:
var
  TestFile: TDataFile
später im Programmtext
Delphi-Quellcode:
  TestFile:= TDataFile.create("FileName");
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 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