working
This commit is contained in:
parent
a385308f38
commit
9b0a20aa91
6 changed files with 275 additions and 69 deletions
22
app/auth.py
22
app/auth.py
|
|
@ -1,9 +1,8 @@
|
|||
"""Модуль аутентификации"""
|
||||
import hashlib
|
||||
import base64
|
||||
import os
|
||||
from app.database import Database
|
||||
|
||||
|
||||
class Auth:
|
||||
def __init__(self, db: Database):
|
||||
self.db = db
|
||||
|
|
@ -34,6 +33,23 @@ class Auth:
|
|||
"""Установить, спрашивать ли пароль при входе"""
|
||||
self.db.set_setting('ask_password_on_startup', '1' if value else '0')
|
||||
|
||||
def reset_password(self):
|
||||
"""Сбросить мастер-пароль"""
|
||||
self.db.set_setting('password_set', '0')
|
||||
self.db.set_setting('master_password_hash', '')
|
||||
self.db.set_setting('ask_password_on_startup', '1')
|
||||
|
||||
def change_password(self, old_password, new_password):
|
||||
"""Изменить мастер-пароль"""
|
||||
if self.is_password_set():
|
||||
if not self.check_password(old_password):
|
||||
return False, "Неверный текущий пароль"
|
||||
|
||||
self.set_master_password(new_password)
|
||||
return True, "Пароль успешно изменен"
|
||||
|
||||
def _hash_password(self, password):
|
||||
"""Хешировать пароль"""
|
||||
"""Хешировать пароль с солью"""
|
||||
# В будущем здесь будет более безопасное хеширование
|
||||
# Пока используем SHA-256 для простоты
|
||||
return hashlib.sha256(password.encode()).hexdigest()
|
||||
Loading…
Add table
Add a link
Reference in a new issue