interstellar_ai/py/db.py
Patrick_Pluto 4a183c0c89 wha
2024-09-20 11:15:42 +02:00

41 lines
No EOL
1.4 KiB
Python

import json
import hashlib
class DB:
def __init__(self):
self.database = {}
def _hash_password(self, password: str) -> str:
salt = "your_secret_salt"
hashed_password = hashlib.sha256((password + salt).encode()).hexdigest()
return hashed_password
def add_user(self, username: str, password: str) -> None:
hashed_password = self._hash_password(password)
user_data = {"hashed_password": hashed_password}
self.database[username] = user_data
def update_password(self, username: str, old_password: str, new_password: str) -> bool:
if not self.check_credentials(username, old_password):
return False
hashed_new_password = self._hash_password(new_password)
self.database[username].update({"hashed_password": hashed_new_password})
return True
def check_credentials(self, username: str, password: str) -> bool:
if username not in self.database:
return False
stored_hashed_password = self.database[username]["hashed_password"]
entered_hashed_password = self._hash_password(password)
return stored_hashed_password == entered_hashed_password
def get_additional_info(self, username: str, password: str) -> dict | None:
if not self.check_credentials(username, password):
return None
send_back = self.database[username]
del send_back['hashed_password']
return send_back