"""Hachage des mots de passe (connexion des admins).""" import bcrypt # bcrypt ignore au-delĂ  de 72 octets : on tronque explicitement. _MAX_BYTES = 72 MIN_LENGTH = 10 def hash_password(plain: str) -> str: payload = plain.encode("utf-8")[:_MAX_BYTES] return bcrypt.hashpw(payload, bcrypt.gensalt()).decode("ascii") def verify_password(plain: str, hashed: str) -> bool: try: return bcrypt.checkpw( plain.encode("utf-8")[:_MAX_BYTES], hashed.encode("ascii") ) except ValueError: return False