Passwörter als 224bit Hash-Werte!
Verfasst: Dienstag 24. März 2009, 16:38
Hallo zusammen,
habe die letzten Tage wieder ein bischen mit Python probiert und dabei ist das herausgekommen. Eine Passwortabfrage über den Hash-Wert! Es werden keine Passwörter der einzelnen User gespeichert sondern nur der Hash-Wert (in diesem Fall 224bit).
Ist der Aufbau so OK oder kann/sollte ich das noch etwas umschreiben.
Bin für alle Tipps zu haben:
Wer es selber Testen will, in Zeile 9 stehen die Passwörter der beiden Muster-User.
Gruß
Stefan
habe die letzten Tage wieder ein bischen mit Python probiert und dabei ist das herausgekommen. Eine Passwortabfrage über den Hash-Wert! Es werden keine Passwörter der einzelnen User gespeichert sondern nur der Hash-Wert (in diesem Fall 224bit).
Ist der Aufbau so OK oder kann/sollte ich das noch etwas umschreiben.
Bin für alle Tipps zu haben:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*- entspricht unicode
#Python v.2.5.2
#Standard Python-Kopf für Deutsche Umlaute!!!
import hashlib
from time import strftime
#Beispiel-Datenbank von Usern
#User-Stefan / passwort=Test1234 // User-Thomas / Passwort=NeuerName
#Hash-Typ: Secure Hash Algorithm 224 -Erzeugt aus einem beliebigen String einen 224-Bit-Hash-Wert.
#Das Passwort wird nicht gespeichert sondern nur der erzeugte Hash-Wert zum vergleich
daten_user={'Stefan':'9e944c9fc213754b493939c9445a9578e9b90e2f8adef6b9015e8539', 'Thomas':'0befa918a3babe85df987c5be80af0d19f40c68e637d37868cf42ede'}
#Eingabeaufforderung des Benutzernamens mit Uhrzeit und Datum
#Drei Versuche, dann Abbruch
x=0 #Startwert Zähler für Schleife
while x < 3:
info=strftime("Aktuelle-Zeit: %X %x") #Ausgabe von Datum und Uhrzeit
print info
name_user=raw_input('Ihr Name: ') #Eingabe des User-Name
u_name=daten_user.get(name_user)
if u_name == None:
print 'Name nicht angelegt!' #Schleife wenn User-Name falsch
x +=1 #Zähler für Schleife um eins pro durchlauf erhöhen
else:
passwort = hashlib.sha224(raw_input('Passwort: ')) #Passwortabfrage und umwandeln in
if u_name != passwort.hexdigest(): #224-Bit Hash-Wert
print 'Falsches Passwort!' #Hier Abbruch wenn Passwort falsch
break
else:
print 'Bitte kommen Sie herein!' #Hier alles OK!
break
print 'Willkommen Zuhause %s!!!!' %(name_user)
Gruß
Stefan