Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Daten effektiv speichern, verschlüsseln, darauf zugreifen... (https://www.delphipraxis.net/66135-daten-effektiv-speichern-verschluesseln-darauf-zugreifen.html)

Uncle Cracker 25. Mär 2006 12:24


Daten effektiv speichern, verschlüsseln, darauf zugreifen...
 
Mahlzeit und ein schönes Wochenende!
Ich habe ein Problem welches ich einfach nicht ordentlich gebacken bekomme und zwar:

Wie kann ich am besten Daten in Dateien speichern, sie verschlüsseln und vereinzelt darauf zugreifen?
Zu Testzwecken läuft alles noch über eine normale INI-Datei, was zwar wirklich nicht schlecht ist, da man gut darauf zugreifen kann, jedoch sehr uneffektiv. Ich könnte zwar jetzt die einzelnen Strings in der INI verschlüsseln, sieht jedoch weder schön aus, noch ist es ein besonderer Schutz, da jeder ein bisschen "rumpftuschen" kann...

Habe auch schon im Forum geguckt jedoch nur diesen Beitrag gefunden...

Gibt es noch bessere Lösungen und Möglichkeiten, zur sicheren Datenspeicherung?


:love: Thx UC

pacman1986 25. Mär 2006 12:32

Re: Daten effektiv speichern, verschlüsseln, darauf zugreife
 
JVCL hat die Caesar Kompo

EDIT :
UPS hab net zuende gelesen

Der_Unwissende 25. Mär 2006 12:46

Re: Daten effektiv speichern, verschlüsseln, darauf zugreife
 
Hi,
ich finde deine Frage ist etwas zu allgemein gestellt. Was verstehst du denn unter effizient/ineffizient in Bezug auf das Speichern deiner Daten? Beziehst du dich hier auf Rechenzeit oder auf Platz?
Dann frag ich mich auch, was für Daten du hast.

Auch das Wort sicher ist so eine Sache. Für das sichere Speichern kommt natürlich am ehesten eine Datenbank in Frage. Da hast du eine Menge Mechanismen (zumindest bei den etwas besseren), die dir Datenkonistenz garantieren (gehört natürlich zum sicheren Ablegen von Daten) und natürlich bietet eine DB auch Zugriffsschutz. Zudem ist die Verwaltung der Daten auch extrem effizient.
Trotzdem gehe ich doch einfach mal davon aus, dass eine DB für dein Problem wirklich mehr Overhead als alles andere mit sich bringt. Darum hängt eine effizientere Art der Speicherung natürlich stark von den Daten ab. Hier insbesondere wie statisch deine Daten sind (oder eben nicht).

Eine einfache Möglickeit die du hättest wäre es auf eine zip-Kapselung (z.B. Abbrevia) zurück zu greifen. Die können (i.d.R) auch verschlüsselte Archive erstellen. Welcher Algorithmus dabei zur Verschlüsselung benutzt wird, weiß ich jetzt nicht aus dem Kopf, aber einen einfachen Schutz stellt dies schon (bei einem ausreichend sicherem Passwort) dar. Hier wäre die Manipulation der Daten nicht mehr möglich (ohne Entschlüsselung). Wenn du zu dem noch die Dateierweiterung von .zip in etwas anderes (eigenes) änderst, dann müsste für einen Versuch dieses Archiv zu entschlüsseln schon etwas mehr Aufwand getrieben werden.

Gruß Der Unwissende

Uncle Cracker 25. Mär 2006 18:10

Re: Daten effektiv speichern, verschlüsseln, darauf zugreife
 
Zitat:

Zitat von Der_Unwissende
Hi,
ich finde deine Frage ist etwas zu allgemein gestellt. Was verstehst du denn unter effizient/ineffizient in Bezug auf das Speichern deiner Daten? Beziehst du dich hier auf Rechenzeit oder auf Platz?
Dann frag ich mich auch, was für Daten du hast.

Mit Effektiv meine ich eher den Zugriff auf die Daten, da eben INI eine sehr einfache Möglichkeit bietet...Ich möchte eine Dateiliste gern speichern und verschlüsseln, jedoch noch einige Zusatzinfos dazu speichern und das geht am einfachsten mit INI-Dateien, da Sektion = Datei wunderbar funzt

Zitat:

Zitat von Der_Unwissende
Auch das Wort sicher ist so eine Sache. Für das sichere Speichern kommt natürlich am ehesten eine Datenbank in Frage. Da hast du eine Menge Mechanismen (zumindest bei den etwas besseren), die dir Datenkonistenz garantieren (gehört natürlich zum sicheren Ablegen von Daten) und natürlich bietet eine DB auch Zugriffsschutz. Zudem ist die Verwaltung der Daten auch extrem effizient.
Trotzdem gehe ich doch einfach mal davon aus, dass eine DB für dein Problem wirklich mehr Overhead als alles andere mit sich bringt. Darum hängt eine effizientere Art der Speicherung natürlich stark von den Daten ab. Hier insbesondere wie statisch deine Daten sind (oder eben nicht).

Also Datenbank ist mir dafür nen bisschen zu viel, da sich Aufwand und Ergbnis glaube ich nicht rendieren werden...Mit sicher meinte ich jetzt nicht unbedingt einen 2048Bit-Schlüssel, da die Daten denk ich mal schon bei einer "einfachen Verschlüsslung" kaum zu knacken sein werden bzw. so viel Mühe wird sich dann doch keiner machen...

Zitat:

Zitat von Der_Unwissende
Eine einfache Möglickeit die du hättest wäre es auf eine zip-Kapselung (z.B. Abbrevia) zurück zu greifen. Die können (i.d.R) auch verschlüsselte Archive erstellen. Welcher Algorithmus dabei zur Verschlüsselung benutzt wird, weiß ich jetzt nicht aus dem Kopf, aber einen einfachen Schutz stellt dies schon (bei einem ausreichend sicherem Passwort) dar. Hier wäre die Manipulation der Daten nicht mehr möglich (ohne Entschlüsselung). Wenn du zu dem noch die Dateierweiterung von .zip in etwas anderes (eigenes) änderst, dann müsste für einen Versuch dieses Archiv zu entschlüsseln schon etwas mehr Aufwand getrieben werden.

Das größte Problem bei ZIP ist, dass man immer zusätzliche DLLs mitliefern muss, das selbe wie bei Datenbanken. Außerdem kann man doch ZIP nicht direkt im Speicher verwenden, zumindestens ist es bei WinRAR nicht so, die Dateien werden vor dem öffnen im Temporären-Verzeichnis zwischengespeichert, aber da kann ich mich auch irren...

Aber wie sieht es mit einem dynamischen Array, kann man dies zur Datenspeicherung nutzen oder eher nicht!? Vielleicht hat auch jmd noch eine andere Möglichkeit bzw. irgendwie schon anders lösen können...

Der_Unwissende 25. Mär 2006 18:19

Re: Daten effektiv speichern, verschlüsseln, darauf zugreife
 
Zitat:

Zitat von Uncle Cracker
Aber wie sieht es mit einem dynamischen Array, kann man dies zur Datenspeicherung nutzen oder eher nicht!? Vielleicht hat auch
jmd noch eine andere Möglichkeit bzw. irgendwie schon anders lösen können...

Natürlich kannst du in einem Dynamischen Array Dateien speichern, aber eben nur solange dein Program läuft. Wenn du die Daten persistent ablegen möchtest, dann nicht mehr. Solltest du nur nach einem Weg suchen Daten abzulegen, während dein Program läuft, würde mich jetzt der Ansatz mit der Verschlüsselung wundern.
Natürlich sind Datenzugriffe die nur auf dem Speicher stattfinden nicht extra zu verschlüsseln (die Mühe den Speicher auszuwerten macht sich bei deinem Programm wohl eher keiner?! Wüßte jetzt kaum ein Prog. wo dass der Fall wäre).

Ich hoffe ich hab dich jetzt richtig verstanden, du möchtest Daten nur während deines Programmlaufs speichern? Das geht am leichtesten mit einer Liste. Die basiert auf dynamischen Arrays, aber du musst dich nicht um die Größe und Verwaltung kümmern. Schau dir am besten mal die TStringList an, damit lässt sich deine Ini-Datei am leichtesten ersetzen. Eine TStringList wird einfach im Speicher gehalten.
Du hast eine Liste von Strings, auf die du zugreifen kannst. Zudem gibt es noch die eigenschaft Objects, mit der du zu jedem String auch eine Objektreferenz speichern kannst (die dann deine zusatztinfos speichern könnte)

Uncle Cracker 25. Mär 2006 18:31

Re: Daten effektiv speichern, verschlüsseln, darauf zugreife
 
Klingt ja schwieriger als ich gedacht hätte...
Ich möchte die Datei auf längeres speichern und darauf zugreifen, aber gut wäre es eben, wenn man immer "mal wieder" zugreifen, entschlüsseln und dann verwenden könnte und nicht alles mit einmal laden und entschlüsseln, was jedoch dann auch nicht so schlimm wäre, so lange man "gut" darauf zugreifen kann.

Mit Objects bei StringLists hab ich mich noch nicht beschäftigt, aber ich werde es mir mal angucken und sehen, ob ich daraus was machen kann


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