From 028fb6bf931270ba594b728b746039c2218cd54b Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Mon, 26 Aug 2024 14:53:00 +0300 Subject: [PATCH 1/3] implement password hashing function --- auth.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/auth.py b/auth.py index 1559a08..fb0cb6b 100644 --- a/auth.py +++ b/auth.py @@ -1,6 +1,7 @@ import json import sys from getpass import getpass +from hashlib import sha256 PWDB_PATH = 'pwdb.json' @@ -29,6 +30,9 @@ def write_pwdb(pwdb, PWDB_PATH): json.dump(pwdb, pwdb_file) +def pwhash(pwd): + return sha256(pwd) + if __name__ == "__main__": PWDB_PATH = 'pwdb.json' pwdb = read_pwdb(PWDB_PATH) -- 2.39.5 From 487f0f9597899d69d66e23ea87900832c653d764 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Mon, 26 Aug 2024 15:31:04 +0300 Subject: [PATCH 2/3] fix hashing password --- auth.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/auth.py b/auth.py index fb0cb6b..50296e3 100644 --- a/auth.py +++ b/auth.py @@ -31,7 +31,12 @@ def write_pwdb(pwdb, PWDB_PATH): def pwhash(pwd): - return sha256(pwd) + encoded_pwd = pwd.encode("utf-8") + m = sha256() + m.update(encoded_pwd) + return m.hexdigest() + + if __name__ == "__main__": PWDB_PATH = 'pwdb.json' -- 2.39.5 From de4dc255acd7bbd2db200aad8323388ab9b2e3a6 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Mon, 26 Aug 2024 15:31:17 +0300 Subject: [PATCH 3/3] implement hashing password where needed --- auth.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/auth.py b/auth.py index 50296e3..fad77c5 100644 --- a/auth.py +++ b/auth.py @@ -7,14 +7,14 @@ PWDB_PATH = 'pwdb.json' def get_credentials(): username = input('Enter your username: ') - password = getpass('Enter your password: ') - return (username, password) + hashed_password = pwhash(getpass('Enter your password: ')) + return (username, hashed_password) -def authenticate(username, password, pwdb): - return password == pwdb[username] +def authenticate(username, hashed_password, pwdb): + return hashed_password == pwdb[username] def add_user(username, pwdb): - pwdb[username] = input(f'Enter password for {username}: ') + pwdb[username] = pwhash(input(f'Enter password for {username}: ')) return pwdb def read_pwdb(PWDB_PATH): -- 2.39.5