Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Verschlüsselte Textdatei (Datenbank) (https://www.delphipraxis.net/16456-verschluesselte-textdatei-datenbank.html)

Budda 17. Feb 2004 12:23


Verschlüsselte Textdatei (Datenbank)
 
Hallo,

also ich brauch im Prinzip folgendes. In meinem Programm gibt es eine Tabelle, diese soll Ihre Daten aus einer Textdatei laden. Sowit so gut, allerdings soll man die Daten nicht einfach so aus der Textdatei entnehmen können, z.B. einfach mit Wordpad öffnen und kopieren, sondern sollten die Daten dadrin verschlüsselt liegen.

Ich brauch im Prinzip ne verschlüsselte Datenbank im Textformat oder der gleichen.
Hatte da zuerst XML im Auge, allerdings liegen da die Daten ja unverschlüsselt in der xml Datei.

Kann mir da vielleicht jemand weiterhelfen?

Gruss
Budda

Manzoni 17. Feb 2004 12:43

Re: Verschlüsselte Textdatei (Datenbank)
 
Falls es dir nur darauf ankommt, dass niemend deine Daten lesen kann, reicht ne xor-Verschlüsselung:
Delphi-Quellcode:
function XORString(Text, Schluessel: String): String;
var i, q: integer;
begin
  q:=1;
  if Trim(Schluessel)='' then
    Schluessel:='asdlkfjöalskjdfölaksdjfölaksjfd';
  for i:=1 to Length(Text) do
  begin
    Text[i]:=Chr(Ord(Text[i]) XOR Ord(Schluessel[q]));
    inc(q);
    if q>length(Schluessel) then q:=1;
  end;
  Result:=Text;
end;

procedure XORFile(Source, Dest, Schluessel: String);
// Ent-/Verschlüsselt die Datei Source und schreibt sie in die Datei Dest.
var buffer: Array[1..40000] of Byte; // dynamischer Speicher wäre schöner
  f, f2: file;
  loop, loop2, gelesen: integer;
begin
  if Trim(Schluessel)='' then
    Schluessel:='asdlkfjöalskjdfölaksdjfölaksjfd';
  AssignFile(f, Source);
  ReSet(f,1);
  AssignFile(f2,Dest);
  ReWrite(f2,1);
  loop2:=1;
  while not EOF(f) do
  begin
    BlockRead(f, buffer, sizeof(buffer), gelesen);
    for loop:= 1 to Gelesen do
    begin
      buffer[loop]:=buffer[loop] XOR Ord(Schluessel[loop2]);
      Inc(loop2);
      if loop2>length(Schluessel) then loop2:=1;
    end; // XOR
    BlockWrite(f2, buffer, gelesen);
  end; // bis zum Ende der Datei
  CloseFile(f);
  CloseFile(f2);
end;
Gefunden bei delphi-source.de

Falls es sicherer sein soll kann ich die Komponente Abbrevia empfehlen.

Spezi1980 17. Feb 2004 12:44

Re: Verschlüsselte Textdatei (Datenbank)
 
Du kannst eine xmldatei nehmen, mußt jedoch jeden String vor dem schreiben verschlüsseln und nach dem schreiben wieder entschlüsseln.
Alternativ kannste auch mit Streams arbeiten. Du schreibst alle Daten in den Stream und verschlüsselst ihn bevor du Ihn auf die Platte als Datei ablegst.

(da war wohl jemand schneller)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz