Jacer hat folgendes geschrieben : |
Ich habe jetzt als erstes daran gedacht eine Datenbank zu erstellen und über md5 ein Passwort einzutragen bzw abzufragen.
|
Die Idee mit einem Hash ist schonmal gut, deutlich besser, als das Kennwort verschluesselt abzuspeichern. Dabei nicht vergessen, ein "salt" zu verwenden, so dass der Hash nicht so einfach geknackt werden kann.
Zur Kennwortaenderung kannst Du analog zu Windows die Eingabe des alten Kennworts verlagen, dieses gegen den aktuellen Hash pruefen und erst dann das neue setzen.
Haeufig gibt es noch weitere Anforderungen:
1. Ein Kennwort darf nicht mehrfach hintereinander verwendet werden. Das kann man erreichen, indem man die letzten n Hashes abspeichert und das neue Kennwort dagegen checkt.
2. Das neue Kennwort muss sich um mindestens n Zeichen vom alten unterscheiden. Das kann man durch Vergleich mit dem alten Kennwort erreichen,
das man bei der Kennwortaenderung ebenfalls abfragt.
3. Manchmal ist auch gefordert, dass sich das neue Kennwort von den letzten n in mindestens m Zeichen unterscheidet. Das laesst sich meines wissens leider nicht sicher (d.h. ohne speichern der alten Kennworte) erreichen. Deshalb wuerde ich versuchen den Auftraggeber davon abzubringen. (Was natuerlich nur dann notwendig ist, wenn es einen Auftraggeber gibt.)
twm