26 lines
683 B
Python
26 lines
683 B
Python
import hashlib
|
||
import secrets
|
||
|
||
|
||
# Хешер для работы с паролем.
|
||
|
||
|
||
class Hasher:
|
||
def __init__(self):
|
||
pass
|
||
|
||
def hash_data(self, password: str) -> str:
|
||
# Хеширует пароль с использованием SHA-256.
|
||
return hashlib.sha256(password.encode()).hexdigest()
|
||
|
||
def verify_data(self, password: str, hashed: str) -> bool:
|
||
# Проверяет пароль путем сравнения его хеша с сохраненным хешем.
|
||
return self.hash_data(password) == hashed
|
||
|
||
@staticmethod
|
||
def generate_password() -> str:
|
||
return secrets.token_urlsafe(20)
|
||
|
||
|
||
hasher = Hasher()
|