Daten Abspeichern in Delphi

Hallo,

erstmal ein paar daten zu mir ich bin schüler an einem technischen gymnasium und habe seit september das programieren mit delphi als schulfach. mir macht das eig. sehr spaß nur ich kann leider noch nicht viel.

zu meinem projekt:
ich möchte mir ein programm erstellen welches 2 formulare bestitzt im ersten wird darum gebeten ein passwort ein zugeben. Sozusagen ein „Überpasswort“. mit diesem Passwort öffnet sich nun das 2. Formular in dem man sich alle Passwörter einspeichern kann die man auf sämtlichen foren, Bankkonten, Pins, etc. hat.
Soweit so gut.
mein problem ist jetzt ich weiß nicht wie ich es schaffe dass meine passwörter (also sowohl überpasswort und alle anderen) gespeichert werden damit sie beim nächsten öffnen der .exe datei noch da sind und wie ich diese passwörter verschlüssle damit sie nicht aus dem quelltext herausgelesen werden können.
außerdem möchte ich dass beim ersten öffnen dieser datei eine abfrage erscheint bei dem man sein überpasswort eingeben muss. sprich dass passwort soll nicht im quelltext stehen sondern erst nach öffnen des programms hinzugefügt werden, damit es nicht nur für mich sondern für jedermann verfügbar sein kann.

so das wäre so meine wunschvorstellung. ich hoffe es gibt hier jemanden der mir helfen kann.

PS: wer rechtschreibfehler findet darf sie behalten :stuck_out_tongue:

Hallo,

Das Abspeichern machst du am besten in einer simplen Textdatei. In Delphi kannst du dir das Beispiel in der Online-Hilfe von „AssignFile“ als Grundstock nehmen. In die Textdatei schreibst du Zeile für Zeile die Passwörter, angefangen zB. mit dem „Überpasswort“.

Die Verschlüsselung kann recht schwierig werden, insbesondere dann, wenn sie wirklich gut sein soll. Es gibt sehr viele Arten, wie man Texte verschlüsseln kann. Eine sehr einfache (aber eben nicht sonderlich sichere) Methode ist die XOR-Verschlüsselung. Ein Beispiel findest du hier:

http://www.dsdt.info/tipps/?id=370

Weitere Arten sind hier beschrieben:

http://delphi.zsg-rottenburg.de/krypt.html

Natürlich alles mit Delphi-Quelltext-Beispielen.

Das sollte als Anfang ja reichen. Bei konkreteren Fragen bitte wieder melden :smile:

LG
Jochen

Danke ich werde dass alles mal durchlesen und ausprobieren

Hi Flo,

ich möchte mir ein programm erstellen welches 2 formulare
bestitzt im ersten wird darum gebeten ein passwort ein
zugeben. Sozusagen ein „Überpasswort“. mit diesem Passwort
öffnet sich nun das 2. Formular in dem man sich alle
Passwörter einspeichern kann die man auf sämtlichen foren,
Bankkonten, Pins, etc. hat.

Dieses Programm habe ich auch. Es nennt sich „Revelation“ :smile: http://oss.codepoet.no/revelation/about/

Die reversible Verschlüsselung ist das heikelste an dem Projekt. Du musst schon was sicheres nehmen, Revelation verwendet z.B. AES. Ein kurzes Googeln nach „Delphi AES“ ergab die Seite: http://www.example-code.com/delphi/encryption.asp - ich würd da mal reinschauen. Der Rest vom Programm ist ja einfach und nicht so lustig ^^

Ciao
Rudy

ahja was mir grade noch einfällt … ich habe mitbekommen dass es auch spezielle edit felder gibt mit denen ich einstellen kann das zwar das was ich eintippe eingelesen wird, es aber nur ‚*‘ prozeichen anzeigt ( wie es ja so bei passwörtern üblich ist).
könnt ihr mir da auch sagen wie das funktioniert. habe in der hilfe von delphi schon gesucht aber ich verstehe das meiste fachchinesisch noch nicht so gut.

es auch spezielle edit felder gibt mit denen ich einstellen
kann das zwar das was ich eintippe eingelesen wird, es aber
nur ‚*‘ prozeichen anzeigt ( wie es ja so bei passwörtern
üblich ist).

Hallo, jedes Edit hat dafür das Property „PasswordChar“.
Details zur Benutzung siehe Online-Hilfe.

Gruß
Martin

Ok also ich hab es jetzt fast … ich muss nur noch wissen wie ich das was in meiner Textdatei steht in nem Label anzeigen kann.
Dannach werd ich das noch alles verschlüsseln und dann müsste alles so sein wie ich es mir vorgestellt habe *freu*.
also diese eine info bräucht ich noch
thx im vorraus

Ok also ich hab es jetzt fast … ich muss nur noch wissen wie
ich das was in meiner Textdatei steht in nem Label anzeigen
kann.

In einem TLabel-Control kannst Du nur einen String anzeigen lassen, da es ja einzeilig ist. Zur Anzeige von Stringlisten bietet sich das TMemo-Control an. Da gibts dann auch Scrollbars für lange Texte usw.

ja einzeilig ist es ja … es ist ja nur ein wort. Mein problem ist dass meine variable ja vom datentyp Text ist und mein label kann ja nur string ausgeben. deswegen weiß ich nicht wie ich das machen muss

ja einzeilig ist es ja … es ist ja nur ein wort. Mein
problem ist dass meine variable ja vom datentyp Text ist und
mein label kann ja nur string ausgeben. deswegen weiß ich
nicht wie ich das machen muss

Hallo,

du verwechselst was: „Text“ ist der Name der Eigenschaft von TLabel. Der Datentyp ist „TCaption“ (glaub ich), was wiederum das selbe ist wie String. Der Eigenschaft „Text“ kannst du also einfach einen String zuweisen.

Is also sehr simpel.

LG
Jochen

ja nein ich habe ja dies funktion mit AssignFile benutzt. somit habe ich ja eine neue Textdatei in der dann später mein passwort steht. und dieser inhalt der textdatei möchte ich in einem label anzeigen.

ja nein ich habe ja dies funktion mit AssignFile benutzt.
somit habe ich ja eine neue Textdatei in der dann später mein
passwort steht. und dieser inhalt der textdatei möchte ich in
einem label anzeigen.

Aso!

Also, dann mußt du zuerst den Inhalt der Datei ein eine String-Variable einlesen. Die kannst du dann der Text-Eigenschaft des Labels zuweisen.

var
 F:Text;
 S:String;
begin
 AssignFile(F,{Dateiname});
 Reset(F);
 ReadLn(F,S);
 CloseFile(F);
 { evtl. S dekodieren }
 Label1.Text := S;
end;

Ok gut das habe ich am anfang auch gedacht aber das geht glaube ich nicht … denn das soll ja im label angezeigt werden wenn dass 2. formular angezeigt wird. also ist ja der variable noch nichts zugewiesen worden oder? dass passiert ja erst wenn ich ein wort in die textdatei hineinschreibe. aber wenn ich das programm beim nächsten mal öffne will ich gleich sehen was jetzt noch vom letzen mal in der datei drinsteht und dass brauch ich.
bist du dir sicher dass es so geht?
ich werds nochmal versuchen.

bist du dir sicher dass es so geht?

Ich bin mir nicht sicher, was genau du willst!

Ich denke das so:

Du hast Form1, wo ein Überpasswort abgefragt wird.

Wenn dieses Passwort korrekt ist, wird Form2 geöffnet, welches eine TLabel-Komponente hat, die dieses Überpasswort anzeigen soll (warum eigentlich? - sowas macht man nicht. Passwörter sollten nach Möglichkeit nie lesbar auf dem Monitor stehen, damit jemand, der zufällig vorbeiläuft, selbige eben nicht einfach so lesen kann).

Wenn also das Überpasswort in Form1 nun bekannt ist (zB. ist es in der String-Variablen „MainPassword“ gespeichert, dann kann das doch vor der Anzeige von Form2 an dessen TLabel-Komponente übergeben werden, zB. mit

Form2.Label.Text := MainPassword;
Form2.Show;

LG
Jochen

nein also das alles ist so: ich gebe mein überpasswort ein und dann komme ich ja auf dieses formular wo es alle meine anderen passwörter anzeigt und diese sind ja auch wieder in textfiles und diese (den inhalt der textdatei) möchte ich sofort in einem label anzeigen wenn das 2. formular angezeigt wird. natürlich nur dann wenn auch schon was in den textfiles drinsteht.