import uuid import csv # Генерация случайного UUID (версия 4) import hashlib import database.database as database random_uuid = uuid.uuid4() DB = 'password_db.csv' class UserFoundException(Exception): pass class PasswordWrongException(Exception): pass def get_db_password(): """Читаем файл паролей в список""" users = [ ] with open(DB, newline='') as csvfile: spamreader = csv.reader(csvfile, delimiter=':') for row in spamreader: users.append(row) return users def checkUser(login: str) -> bool: """Проверяем пользователя в БД""" db = get_db_password() for row in db: if login == row[1]: return row # raise UserFoundException("Такой пользователь существует!") # try: # checkUser('user') # except UserFoundException as e: # print(e) def calculate_md5(data): """Вычисляет MD5-хеш для данных.""" md5_hash = hashlib.md5(data.encode('utf-8')).hexdigest() return md5_hash def login(username, passwd): _l , _p = database.get_list_account(username) # user = checkUser(username) # print(user[2]) passwd_md5 = calculate_md5(str(passwd)) # print(passwd_md5) isRight = False if (_p == passwd_md5) else True if isRight: raise PasswordWrongException else: print("Пользователь авторизован") # try: # checkUser('user') # except UserFoundException as e: # print(e) # except PasswordWrongException as e: # print(e) # login('oper', 123) # exit(0) def logout(username): #todo: Сделать флаг выхода из системы pass def delete_user(username): #todo: Дописать удаление пользователя pass def registration(login, passwd, rep_passwd): """Регистрация пользователей.""" if passwd == rep_passwd: passwd_md5 = calculate_md5(passwd) #print(f"MD5-хеш для '{passwd}': {passwd_md5}") str = f"{random_uuid}:{login}:{passwd_md5}\n" with open("password_db.csv", "a+") as fd: fd.write(str) if not database.add_account(login, passwd_md5): print("Запись добавлена") _login = input("login:") _passwd = input("passwd:") _rep_passwd = input("rep_passwd:") #registration( _login, _passwd,_rep_passwd ) login( _login, _passwd )