optymalizacje_kodu #8
26
app.py
26
app.py
@@ -243,9 +243,33 @@ def hash_password(password):
|
||||
|
||||
|
||||
def check_password(stored_hash, password_input):
|
||||
"""Obsługuje zarówno hashe bcrypt (nowe), jak i stare Werkzeugowe (PBKDF2)."""
|
||||
pepper = app.config["BCRYPT_PEPPER"]
|
||||
peppered = (password_input + pepper).encode("utf-8")
|
||||
return bcrypt.checkpw(peppered, stored_hash.encode("utf-8"))
|
||||
|
||||
# Rozpoznaj format hasha
|
||||
if stored_hash.startswith("$2b$") or stored_hash.startswith("$2a$"):
|
||||
# bcrypt
|
||||
try:
|
||||
return bcrypt.checkpw(peppered, stored_hash.encode("utf-8"))
|
||||
except Exception:
|
||||
return False
|
||||
elif stored_hash.startswith("pbkdf2:"):
|
||||
# STARY HASH! (Werkzeug)
|
||||
# opcjonalnie: zrób check_password_hash, pozwól się zalogować, wymuś zmianę hasła
|
||||
from werkzeug.security import check_password_hash
|
||||
if check_password_hash(stored_hash, password_input):
|
||||
# tu np. możesz zapisać nowe hasło w formie bcrypt!
|
||||
# user.password_hash = hash_password(password_input)
|
||||
# db.session.commit()
|
||||
print("Użytkownik loguje się starym hasłem: wymuś zmianę na nowe!")
|
||||
return True # POZWÓL JEDNORAZOWO
|
||||
else:
|
||||
return False
|
||||
else:
|
||||
# Nieznany format
|
||||
return False
|
||||
|
||||
|
||||
|
||||
if app.config["SQLALCHEMY_DATABASE_URI"].startswith("sqlite:///"):
|
||||
|
Reference in New Issue
Block a user