Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi PWD Speichern (https://www.delphipraxis.net/21006-pwd-speichern.html)

faux 26. Apr 2004 17:07


PWD Speichern
 
Hallo!

Ich hab mal ein paar kurze Fragen

1. wie speichere ich am besten und sichersten passwörter? und wo hin? - also in die registry, oder in inis oder ganz wo anders?!

2. wo (im qt) setze ich eine passwortabfrage hin? - also ohne dem pwd kann das programm nicht gestartet werden... also ins projekt oder in die unit...???

danke schon mal

alcaeus 26. Apr 2004 17:10

Re: PWD Speichern
 
Zu 1.: Beides kann genauso geknackt werden, aber die Inifiles kommen noch aus 16-Bit-Zeiten, seit Win32 gibts die Registry, also nimm die
Zu 2.: Ich blende immer alles auf dem MainForm aus (Visible := False), zeige dann den Passwortdialog an (vom MainForm aus, also in Form1.OnShow). Dieser Dialog muss natürlich modal angezeigt werden (ShowModal anstatt Show verwenden). Ist das Passwort richtig, dann alle Visible auf True, andernfalls Form1.Close

faux 26. Apr 2004 17:13

Re: PWD Speichern
 
aber ich schätze mal wenn ich das im Projekt-QT noch vor Application.CreateForm(TForm1, Form1) mache, dann ist das sicherlich nicht so leicht zu umgehen wie mit visible, oder sehe ich das falsch?

ich weiß, ich schreibe immer alles in die registry...
nur kann die registry auch ASCII - Werte (zb ©£ø oder so) speichern? denn die entstehen bei meinem verschlüsselungsalgorithmus...

alcaeus 26. Apr 2004 17:16

Re: PWD Speichern
 
Also, das mit den ASCII-Zeichen kenne ich, ich hatte das selbe Problem mit einer Datenbank. Ich habe da die ASCII-Codes hexadezimal codiert und dann so abgespeichert. So wird der String doppelt so lang, aber in der Registry macht das ja nichts.

fiasko 26. Apr 2004 17:21

Re: PWD Speichern
 
Du solltest dein Paßwort auf keinen Fall Plain Text abspeichern. Verschlüsseln ist hier auch fehl am Platz.
Recht sicher dürfte sein wenn du nur einen Hash davon speicherst, Stichworte sind hier MD5 oder besser SHA1.

Wenn du den Hash dann als Hex-Zeile darstellst hast du lustige 32x ASCII-Zeichen die sich alle überall speichernlassen.

Wenn dann beim start einer das Paßwort eingibt brauchst du nur zu prüfen ob die selben 32 ASCII-Zeichen rauskommen.

faux 26. Apr 2004 17:51

Re: PWD Speichern
 
Dumme frage: was ist ein Hash?

fiasko 27. Apr 2004 06:19

Re: PWD Speichern
 
Eine Hash-Funktion bildet einer komplexen Struktur (String, Datei etc.) auf einen skalaren Wert ab. Ist im Prinzip eine Checksumme. Bei einem MD5-Hash ist das eine 16 Byte große Zahl (die man durch 32 Hex-Ziffern darstellen kann). Der Hash-Algorithmus ist so optimiert das er möglichst wenig Kollisionen (=gleiche Hashwerte) für unterschiedliche Eingaben liefert. Es ist i.A. nicht bzw. nur mit großem Aufwand möglich von einem Hash Wert auf den Ursprünglich Wert zu schlußfolgern.

Wenn also einer das Paßword-Hash deines Programms ausliest ist das erstmal nicht tragisch, er weiß ja nicht was für ein Paßwort er in deinem Programm dafür eingeben muß.

Dax 27. Apr 2004 06:25

Re: PWD Speichern
 
Wenn du das Passwort/den Hash nicht später ändern willst, schlage ich vor, es in eine globale Konstante oder Resource zu packen, damit man es schwerer findet, denn so wird es in den Programmcode kompiliert.

Diese Methode würde ich auf jeden Fall bevorzugen :)


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