|
|
from passlib.context import CryptContext |
|
|
|
|
|
|
|
|
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") |
|
|
|
|
|
def get_password_hash(password: str) -> str: |
|
|
""" |
|
|
Hash a plain text password |
|
|
""" |
|
|
|
|
|
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 |
|
|
""" |
|
|
|
|
|
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) |