![]() |
Passwortverschlüsselung
hallo an alle,
leidiges thema und schon hundertfach diskutiert.. sorry dafür! dennoch die frage, da mir die sufu nicht so richtig weiter hilft :( ich habe einen datensatz, den ich über nachfolgende funktion in eine datei abspeichere:
Code:
wie euch sicherlich aufgefallen ist, speichert das in normal lesbarer version alle datensätze aus meiner liste. ich möchte nun, dass diese daten verschlüsselt abgespeichert werden und bei meiner datei öffnen funktion nur dann korrekt eingelesen werden, wenn das mitgespeicherte und ebenfalls verschlüsselte passwort korrekt eingegeben wurde... (bei meiner speichermethode kann die datei logischerweise einfach per wordpad geöffnet und gelesen werden)
procedure TForm1.Listespeichernunter1Click(Sender: TObject);
var Datf:File of TDaten; Daten1:TDaten; begin aenderung:=false; Edit1.Clear; lauf:=TKnoten.Init; if SaveDialog1.Execute then begin dateiname:=SaveDialog1.FileName; if copy(dateiname,length(dateiname)-3,4)<>'.mbf' then begin dateiname:=dateiname+'.mbf'; end; Assignfile(Datf,dateiname); Rewrite(Datf); lauf:=anfang; repeat lauf:=lauf.nachfolger; if (lauf <> ende) then begin write(Datf,lauf.Daten); end; until (lauf.nachfolger=ende); closefile(Datf); end; end; muss ich dabei wirklich so aufwändig werden, wie in einigen schon vorhandenen posts besprochen wurde? oder kann man das auch einfacher haben? ich brauch da nicht unbedingt eine 128bit verschlüsselte file.. es soll bloß für den normalen user, der die file halt per wordpad öffnet nicht mehr lesbar sein und in meinem programm halt nur bei korrekter eingabe entschlüsselt werden! danke für alle beiträge vorab! greedings |
AW: Passwortverschlüsselung
Zitat:
PS: Was hast du gegen Chiffren mit einem 128-bit Schlüssel? Viel kleiner kannst du eh nicht werden, denn außer den veralteten DES und einigen Stromchiffren gibt es eig. nichts gescheites, was weniger hat. |
AW: Passwortverschlüsselung
krass was ein amok denkfehler meinerseits.. ist ja logisch, dass das so nicht gehen könnte^^ danke dafür schonmal
wie funktioniert das mit dem hashen denn? ich würd es dann jetzt so verstehen, dass ich meinen normalen inhalt ausm programm durch irgend eine form von verschlüsselung unlesbar abspeichere und das passwort gehashed(?!) mit hinterlegt wird.. hat jemand dazu was in ein paar zeilen code? thx |
AW: Passwortverschlüsselung
.. nein, der Schlüssel bzw. das Passwort wird nirgendwo hinterlegt.
Der User gibt ein Passwort ein, dein Programm erstellt daraus einen Hash (Stichwort md5, sha1). Der Hash wird dann zum ver- und entschlüsseln hergenommen. Grüße Klaus |
AW: Passwortverschlüsselung
Es war anders gemeint, so wie Klaus01 schon sagte.
Speichern:
Das Passwort existiert somit nirgendwo mehr. Das Laden geht erst einmal genau so, nur dass du in Punkt 4 natürlich die Daten lädst und entschlüsselst. Außerdem sollte man natürlich aufpassen, dass man ja einen verketteten Modus für die Blockchiffre nimmt (sofern man sich für eine entscheidet) und am besten auch jedes mal einen neuen Initialisierungsvektor nutzt. |
AW: Passwortverschlüsselung
ich hab mal bei der sufu nach md5 und sha1 gekramt, aber ich versteh da nur bahnhof... ich bin schon eher so nen ziemlicher amateur beim coden und das überfordert mich dann doch ziemlich^^ prinzipiell check ich was ihr von mir wollt, aber wie ich das in zeilen umsetzen soll hab ich keinen plan :X evtl erbarmt sich jemand und hilft mir mit n bisschen code weiter? bzw. ein link zu nem entsprechenden eintrag in irgend nem forum, aus dem auch ein nichtskönner schlau wird? :D
|
AW: Passwortverschlüsselung
Such mal nach DEC. Dort sollten genug Algorithmen enthalten sein.
Wie es funktioniert? Gute Frage, ich nutze es nicht, aber auch da könnte dir die Sufu weiter helfen. |
AW: Passwortverschlüsselung
wie gesagt, das ist mir alles ein bisschen hoch... ich begrab das "projekt" verschlüsseln dann einfach ;)
danke trotzdem an alle und falls doch noch jemand helfen mag, ich freue mich :D |
AW: Passwortverschlüsselung
Naja, schwer ist es nun nicht gerade.
Ein Beispiel, wie einfach es mit meinen eigenen Komponenten geht:
Delphi-Quellcode:
(SHA-256 als Hash, AES als Verschlüsselung.)
procedure TForm1.SaveFileButtonClick(Sender: TObject);
begin AES.Key.Assign(SHA256.Hash(PasswortEdit.Text)); // Passwort hashen und als Schlüssel zuweisen AES.EncipherTextFile('C:\test.txt', DatenMemo.Text); // Inhalt von DatenMemo in die Datei test.txt speichern end; procedure TForm1.OpenFileButtonClick(Sender: TObject); begin AES.Key.Assign(SHA256.Hash(PasswortEdit.Text)); // Passwort hashen und als Schlüssel zuweisen DatenMemo.Text := AES.DecipherTextFile('C:\test.txt'); // Datei test.txt laden und deren Inhalt DatenMemo.Text zuweisen end; Hier fehlt eig. nur noch, beim Speichern einen IV zu setzen. Ansonsten ist es vollkommen einsatzbereit :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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 by Thomas Breitkreuz