Ich entwickle eine Webapp mit Python und Kolben. Es hat ein Benutzersystem, also natürlich ein Registrierungsformular. Ich benutze, um das Passwort des Benutzers, der sich registrieren will, passlib.hash.sha256 zu verschlüsseln. Hier ist, was ich tue:sha256_crypt.encrypt immer einen anderen Hash zurück
from passlib.hash import sha256_crypt as sha256
[...]
if request.method == "POST" and form.validate():
username = request.form['username']
password = request.form['password']
confirm_password = request.form['confirm_password']
email = request.form['email']
password = sha256.encrypt(password) #Encryption.
c, conn = connection('accounts') #Connection to the database
x = c.execute("SELECT * FROM accounts WHERE username = '%s' OR email = '%s'" %(thwart(username), thwart(email)))
if x:
flash("We are very sorry, but this Username/Email-address is already taken. Please try again")
else:
c.execute('INSERT INTO accounts VALUES ("%s", "%s", "%s")' %(thwart(username), thwart(password), thwart(email)))
conn.commit()
flash('Succesfully Registered!')
In der Datenbank wird der Hash immer variiert, auch wenn das gleiche Passwort inputed wurde. Weiß jemand warum? Was mache ich falsch?
Sie haben über das Konzept herausgefunden von Salz https://en.wikipedia.org/wiki/Salt_(cryptography). Sind Sie sicher, dass Sie für die Authentifizierung qualifiziert sind? –
Was meinst du mit "qualifiziert" – MisterMM23
ich sehe. Aber ich habe nichts programmiert, das zufällige Daten hinzufügen würde. Ist das neu bei Pythons sha256? – MisterMM23