Passwörter speichern mit Pyto?
Guten Abend ich hätte eine Frage bezüglich Python und Passwort Speicherung. Manchmal Programmier ich auf dem Handy kleine Systeme mit Python auf der App Pyto. Das Problem ist das ich ein Passwort System Coden will aber keine Ahnung habe wie ich das machen kann. Kann mir wer da helfen?
Liebe Grüße
1 Antwort
Passwörter dürfen keinesfalls im Klartext gespeichert werden. Sie werden normalerweise als Hashwerte gespeichert. Ein Hashwert ist eine verschlüsselte Form des Passworts, die sich nicht mehr zurückrechnen lässt. Das Hashen des Passworts mit SHA256 funktioniert in Python folgendermaßen:
import hashlib
hash=hashlib.sha256("hier_das_Passwort".encode()).hexdigest()
In der Variable hash ist der Hashwert gespeichert, der dann in z.B. einer Datei gespeichert werden kann. Wichtig dabei ist aber, dass eine Modifikation dieser Datei ausgeschlossen ist bzw. automatisch von Programm erkannt wird. Das könnte man lösen, indem man den Inhalt, auf den zugegriffen werden soll, mit dem Passwort verschlüsselt (z.B. mit Fernet) und bei der Anmeldung wieder entschlüsselt.
Willst du prüfen, ob das eingegebene Passwort richtig ist, gehst du folgendermaßen vor:
eingegeben="..."
hash=open("datei_mit_dem_hash", "rb").read()
if(hashlib.sha256(eingegeben.encode()).hexdigest()==hash):
#Das wird ausgeführt wenn das Passwort richtig ist.
else:
#Das wird ausgeführt wenn das Passwort falsch ist.
Das Prinzip dahinter ist folgendes: Man kann den Hash des richtigen Passwortes zwar nicht zurückrechnen, man kann aber den Hash des eingebenen Passworts berechnen. Somit hat man dann den Hashwert des korrekten Passworts und den des eingebenen Passworts. Stimmen beide überein, war das Passwort richtig.
Ich danke dir wirklich. Du bist die einzige Person die mir bisher da helfen konnte. Danke (╹◡╹)