Initial commit
This commit is contained in:
commit
db896255d6
744 changed files with 56028 additions and 0 deletions
26
api/libs/password.py
Normal file
26
api/libs/password.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# -*- coding:utf-8 -*-
|
||||
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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue