phash #17

Open
ariannabi wants to merge 2 commits from ariannabi/2024-heraklion-git:phash into main

12
auth.py
View file

@ -1,6 +1,7 @@
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'
@ -10,12 +11,18 @@ def get_credentials():
return (username, password) return (username, password)
def authenticate(username, password, pwdb): def authenticate(username, password, pwdb):
return password == pwdb[username] return pwash(password) == pwdb[username]
def add_user(username, pwdb): def add_user(username, pwdb):
pwdb[username] = input(f'Enter password for {username}: ') password = input(f'Enter password for {username}: ')
pwdb[username] = pwhash(password)
return pwdb return pwdb
def pwhash(password):
byte_pass = bytes(password, 'UTF-8')
hashed_password = hashlib.sha256()
hashed_password.update(byte_pass)
return str(hashed_password.digest())
def read_pwdb(PWDB_PATH): def read_pwdb(PWDB_PATH):
try: try:
pwdb_file = open(PWDB_PATH, 'rt') pwdb_file = open(PWDB_PATH, 'rt')
@ -45,4 +52,5 @@ if __name__ == "__main__":
print('Successfully authenticated!') print('Successfully authenticated!')
else: else:
print('Wrong password!') print('Wrong password!')
pwhash(password)