mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 02:42:59 +00:00 
			
		
		
		
	
		
			
	
	
		
			27 lines
		
	
	
		
			795 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			795 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | # -*- 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) |