| 1234567891011121314151617181920212223242526 | 
							- import base64
 
- import binascii
 
- import hashlib
 
- import re
 
- password_pattern = r"^(?=.*[a-zA-Z])(?=.*\d).{8,}$"
 
- def valid_password(password):
 
-     # Define a regex pattern for password rules
 
-     pattern = password_pattern
 
-     # Check if the password matches the pattern
 
-     if re.match(pattern, password) is not None:
 
-         return password
 
-     raise ValueError("Not a valid password.")
 
- def hash_password(password_str, salt_byte):
 
-     dk = hashlib.pbkdf2_hmac("sha256", password_str.encode("utf-8"), salt_byte, 10000)
 
-     return binascii.hexlify(dk)
 
- def compare_password(password_str, password_hashed_base64, salt_base64):
 
-     # compare password for login
 
-     return hash_password(password_str, base64.b64decode(salt_base64)) == base64.b64decode(password_hashed_base64)
 
 
  |