Der am häufigsten (nicht sicherste) Algorithmus für Hashing ist md5
. ein paar Ideen von Djangos Passwort-System zu extrahieren kann dieser Code sein:
import hashlib
def make_password(password):
assert password
hash = hashlib.md5(password).hexdigest()
return hash
def check_password(hash, password):
"""Generates the hash for a password and compares it."""
generated_hash = make_password(password)
return hash == generated_hash
>>> hash = make_password('hello123')
>>> hash
'f30aa7a662c728b7407c54ae6bfd27d1'
>>> check_password(hash, 'hello123')
True
>>> check_password(hash, 'Hello123')
False
Verwenden make_password
einen Hash zu generieren und check_password
wenn das eingegebene Passwort das gleiche wie die gespeicherte ist zu überprüfen.
@Emil Wie erwähnt, unterstützt Django mehrere Kennwort Hashers wie pbkdf2_sha256 und pbkdf2_sha1 durch $
die Zeichenfolge als 3-fachen Wert getrennten Speicherung: algorithm$salt$hash
. salt
ist eine zufällig generierte Zeichenfolge, die verhindert, dass sich dasselbe Kennwort in der Datenbank wiederholt.
danke, aber diese Methoden mit Django-Anwendung verwendet. Ich möchte schreiben Funktion für die Verwendung ohne Django, etwas wie folgt: http://stackoverflow.com/questions/1306550/calculating-a-sha-hash-with-a-string-secret-key-in-python – saniaxxx26