为什么我的函数 save_users(): 不工作?如何将这些密码保存到文件?

Why isn't my function save_users(): working? How do I save these passwords to file?

from hashlib import sha256
import random, sys


def hash(string):
    '''Hashes a string'''

    return sha256(
        string.encode()).hexdigest() # when using hash() returns a hashed string


def save_users():
    f = open("UserDetails.txt", "w")
    f.write("Username;{} \nPassword:{}".format(username, password))
    f.close


print("\nWelcome")
signIn = input("Do you have an account? [Y/N]").upper()

if signIn == "N":
    print("Sign up :")

    username = input("New Username: ")
    password = hash(input("New Password: "))
    confirm = hash(input("ConfirmPassword: ")) == password
    print(password)

    if not confirm:
        print("Passwords do not match")

save_users()

“打印(密码)”只是为了测试它是否真的对字符串进行了哈希处理,因为这是我第一次做这样的事情。如何将密码和用户名保存到电子邮件中,同样如何验证密码和用户名?

Python 3.8.5

替换:

def save_users():
    f = open("UserDetails.txt", "w")
    f.write("Username;{} \nPassword:{}".format(username, password))
    f.close

与:

def save_users(username, password):
    f = open("UserDetails.txt", "w")
    f.write("Username;{} \nPassword:{}".format(username, password))
    f.close()

并用 save_users(username, password) 代替 save_users()

来调用它
from hashlib import sha256
def hash(string):
    '''Hashes a string'''

    return sha256(
        string.encode()).hexdigest() 


def save_users(username, password):
    with open("UserDetails.txt", "w") as f:
        f.write("Username;{} \nPassword:{}".format(username, password))


print("\nWelcome")
signIn = input("Do you have an account? [Y/N]").upper()

if(signIn == "N"):
    print("Sign up :")
    username = input("New Username: ")
    password = hash(input("New Password: "))
    confirm = hash(input("ConfirmPassword: ")) == password

    if(confirm):
         save_users(username, password)
    else:
        print("Passwords do not match")

else:
    print("you are already have an account")

测试这个