Delphi-PRAXiS
Seite 1 von 9  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Memofeld Inhalt (https://www.delphipraxis.net/190083-memofeld-inhalt.html)

XardasLP 28. Aug 2016 06:20

Memofeld Inhalt
 
Der Inhalt eines Memofeldes wird geändert also beispielsweise:

Delphi-Quellcode:
  var
  Form1: TForm1;
  PW: string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
PW := Edit1.Text;
Label1.Caption := PW;
Memo1.Lines.Strings[0] := PW;
end;
Wie kann ich diesen Inhalt, welcher nur zur Laufzeit geändert wird, bei einem Neustart wieder automatisch im Memofeld stehen haben? Ich möchte kein SavetoFile oder LoadFromFile verwenden, da es ja nicht so toll ist wenn jeder die .txt Datei sehen kann ;) ^^

vagtler 28. Aug 2016 07:40

AW: Memofeld Inhalt
 
Welche andere Datenpersistenz als eine irgendwie geartete Form einer Datei (auch z.B. die Registry ist letztendlich nichts anderes) schwebt Dir denn vor, die die Lebenszeit eines Prozesses überdauern könnte?

Oder mit anderen Worten: ich glaube, Dein Problem ist ein anderes.

hoika 28. Aug 2016 07:44

AW: Memofeld Inhalt
 
Hallo,
du könntest die Datei verschlüsseln.
Oder du packst den Inhalt in eine Ressource in die Exe selbst.

XardasLP 28. Aug 2016 08:01

AW: Memofeld Inhalt
 
Ok und wie erstellt man so eine Ressource? :) ^^

Der Memoinhalt soll sich aus dem Editfeld ergeben und wenn man das Projekt dann schließt und wieder startet soll der gleiche Inhalt immer noch drin stehen. Ähnlich als hätte ich ihn selbst bei Lines reingeschrieben, denn da bleibt er ja auch bis ans Ende vorhanden.

vagtler 28. Aug 2016 08:15

AW: Memofeld Inhalt
 
Stichwort: selbstmodifizierende EXE. Das ist böse. Sehr böse.

Ansonsten verweise ich auf meinen obigen Beitrag.

XardasLP 28. Aug 2016 08:23

AW: Memofeld Inhalt
 
Wenn jemand eine Textdatei einfach verwenden und löschen kann ist das nicht ebenso unsicher / sinnfrei?

Benedikt Magnus 28. Aug 2016 08:35

AW: Memofeld Inhalt
 
Ich würde davon abraten, solche Sachen in die Exe zu schreiben.
Wenn es dir wirklich wichtig ist, dass man den Inhalt des Memos nicht außerhalb deines Programms ändern kann (warum auch immer), so würde ich ebenfalls zum verschlüsselten Abspeichern raten.
Wenn es dir missfällt, dass die Datei neben der Exe landet, dann nimm eben (ist sowieso besser) stattdessen %AppData%/"Programmname"/Dateiname als Speicherpfad.
Wenn es dir nur darum geht, den Inhalt zu verschleiern, damit nicht jeder X-Beliebige darin rumfuschen kann, reicht schon eine einfache Caesarverschlüsselung oder du speicherst den Text binär ab.
Höhere Sicherheit bekommst du mit bspw. AES. Aber wenn du das Passwort fest in die Exe verbaust, bietet das wieder einen Angriffspunkt (und ist unpraktisch hinsichtlich der Passwortänderung über Versionen hinweg).
Du könntest das Passwort natürlich über Algorithmen berechnen lassen, aus sonstwelchen Informationen, aber auch das ließe sich theoretisch brechen...
Von daher stellen sich zwei Fragen: Vor wem willst du die Datei schützen und wie stark soll dieser Schutz sein? Wenn du vor hast, diese Informationen vor dem Anwender selbst unangreifbar zu verbergen, sage ich dir gleich: Vergiss es.
Hinreichende Sicherheit bekommst du nur, wenn entweder a) der Anwender beteiligt ist (ein Passwort festlegen kann) oder b) du ein niedriges Sicherheitsniveau als hinreichend betrachtest.

XardasLP 28. Aug 2016 08:52

AW: Memofeld Inhalt
 
Ich will das meine schon verschlüsselten Informationen, welche in einer Textdatei stehen dauerhaft im Memofeld sind. Um diese zu entschlüsseln benötigt man das Passwort (String) sowie den Schlüssel (Integer) welcher in einem ASCII Verfahren addiert oder subtrahiert mit dem Schlüssel das Passwort ergibt.

Danach werden erst die anderen Sachen wie das Memofeld mit dem selben Schlüssel entschlüsselt.

Sinn ist einfach, dass wenn man das Programm öffnet die benötigten Textdateien kurz entstehen (zur Umwandlung) und diese danach wieder gelöscht werden. Bei einer Eingabe des Passwortes <15 Sekunden wird das Programm geschlossen.

Gibt man das Passwort 2x falsch ein wird eine .bat Datei erstellt welche zu mindestens Windows selbst zwingt sich bedingungslos herunterzufahren.

Um das ganze nun sicher zu gestalten soll sich das Programm noch merken wie oft es geöffnet wurde, da bei jedem Neuöffnen 2 Versuche zur Verfügung stehen. Das Neuöffnen soll nur maximal 2x funktionieren, danach ändert sich der Inhalt des Memofeldes oder löscht sich sogar, sodass man niemals an die so schon verschlüsselten Daten herankommt.


Hoffe du verstehst es ? :-D

p80286 28. Aug 2016 09:08

AW: Memofeld Inhalt
 
Zitat:

Zitat von XardasLP (Beitrag 1345924)
Wenn jemand eine Textdatei einfach verwenden und löschen kann ist das nicht ebenso unsicher / sinnfrei?

Ja!

Übrigens kann man auch Dein Programm einfach löschen!

Gruß
K-H

XardasLP 28. Aug 2016 09:23

AW: Memofeld Inhalt
 
Wenn man das Programm löscht kommt man auch nie an die Informationen??? Hast dir grade selber eine Falle gestellt :P :twisted:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 Uhr.
Seite 1 von 9  1 23     Letzte »    

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