subul / backend /utils /password_utils.py
Kaadan's picture
initial commit
358dfff
from passlib.context import CryptContext
# Password hashing context
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
def get_password_hash(password: str) -> str:
"""
Hash a plain text password
"""
# Truncate password to 72 bytes if needed (bcrypt limitation)
if len(password.encode('utf-8')) > 72:
password = password.encode('utf-8')[:72].decode('utf-8', errors='ignore')
return pwd_context.hash(password)
def verify_password(plain_password: str, hashed_password: str) -> bool:
"""
Verify a plain text password against its hash
"""
# Truncate password to 72 bytes if needed (bcrypt limitation)
if len(plain_password.encode('utf-8')) > 72:
plain_password = plain_password.encode('utf-8')[:72].decode('utf-8', errors='ignore')
return pwd_context.verify(plain_password, hashed_password)