# 注册登录系统
import hashlib
import json
import os.path
def load_account():
if os.path.exists("account.txt"):
return json.load(open("account.txt"))
else:
return {}
def save_account(user_info):
json.dump(user_info, open("account.txt", "wt", encoding="utf-8"))
UI = """
1.注册
2.登陆
0.退出
"""
print(UI)
no = int(input("请输入你的选择"))
if no == 1:
dc = load_account()
# 让用户输入账户密码
account = input("请输入账户:")
if dc.get(account):
print("账户已存在请重新注册")
else:
password = input("请输入密码:")
confirm = input("请再次输入密码")
if password == confirm:
ho = hashlib.md5(password.encode())
encrypt = ho.hexdigest()
dc[account] = encrypt
save_account(dc)
print("注册成功")
else:
print("前后两次密码不一致,请重新注册")
elif no == 2:
# 输入要登录的账户和密码
# 读取保存在文件中的账户信息 dc
# 判断用户输入的账户是否存在dc.get(account)
# 将用户输入的密码进行加密
# 再去判断dc[account] == 加密的密码
print("进入登录")
account = input("请输入账户:")
passwd = input("请输入密码:")
if os.path.exists("account.txt"):
dc = load_account()
else:
print("没有找到用户数据文件,可能是首次运行程序。")
exit()
if account in dc:
stored_passwd = dc[account]
md5 = hashlib.md5(passwd.encode())
entered_passwd = md5.hexdigest()
if entered_passwd == dc[account]:
print("登录成功")
else:
print("密码错误,登录失败")
else:
print("账户不存在")
elif no == "0":
print("退出用户登录系统")
exit()
else:
print("输出有误,请重新输入")