hashed-psw #14

Open
annabo wants to merge 2 commits from annabo/2024-heraklion-git:hashed-psw into main

10
auth.py
View file

@ -1,21 +1,27 @@
import json import json
import sys import sys
from getpass import getpass from getpass import getpass
import hashlib
PWDB_PATH = 'pwdb.json' PWDB_PATH = 'pwdb.json'
def get_credentials(): def get_credentials():
username = input('Enter your username: ') username = input('Enter your username: ')
password = getpass('Enter your password: ') password = hash_psw(getpass('Enter your password: '))
return (username, password) return (username, password)
def authenticate(username, password, pwdb): def authenticate(username, password, pwdb):
return password == pwdb[username] return password == pwdb[username]
def add_user(username, pwdb): def add_user(username, pwdb):
pwdb[username] = input(f'Enter password for {username}: ') pwdb[username] = hash_psw(input(f'Enter password for {username}: '))
return pwdb return pwdb
def hash_psw(password):
hashed_pw = hashlib.sha256(bytes(password, 'utf-8')).hexdigest()
return hashed_pw
def read_pwdb(PWDB_PATH): def read_pwdb(PWDB_PATH):
try: try:
pwdb_file = open(PWDB_PATH, 'rt') pwdb_file = open(PWDB_PATH, 'rt')