Passwörter speichern mit Pyto?

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.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit oft komplexe Anwendungen

MegaAbu 
Beitragsersteller
 17.07.2024, 23:15

Ich danke dir wirklich. Du bist die einzige Person die mir bisher da helfen konnte. Danke (╹◡╹)

0