# 注册登录系统
import hashlib
import json
import os
import sys
# 账户新是一个保存在文件中字典
def load_account(path):
if os.path.exists(path):
# 判断文件或者目录是否存在
# json.可以将对象转换为**字符对象**
return json.load(open(path, "rt", encoding="utf-8"))
# load ---------------- 将一个file对象反序列化为对象
else:
return {}
# 将用户信息字典保存到硬盘中
def save_account(account_info, path):
# dumps ---------------将对象序列化为字节数据
json.dump(account_info, open(path, "wt", encoding="utf-8"))
UI = """
1.注册
2.登陆
0.退出
"""
while True:
print(UI)
select = int(input("请输入你的选择:"))
if select == 1:
# 注册
# 用输入账户密码,确认密码
account = input("请输入账户:")
dc = load_account("account.txt")
if dc.get(account):
print("该账户已存在,请重新注册")
else:
passwort = input("请输入密码:")
confirm = input("请再次输入密码:")
if passwort == confirm:
# 密码加密
hs_obj = hashlib.md5(passwort.encode())
# # 使用encode方法将字符串编码为UTF-8格式的字节序列
dc[account] = hs_obj.hexdigest()
# 以16进制输出
# 将账户密码保存到文件
save_account(dc, "account.txt")
else:
print("前后两次密码输入不一致")
elif select == 2:
# 输入要登录的账户和密码
account = input("请输入账户:")
dc = load_account("account.txt")
if not dc.get(account):
print("账户不存在,请重新输入")
else:
passwort = input("请输入密码:")
# 读取保存在文件中的账户信息 dc
# 判断用户输入的账户是否存在dc.get(account)
# 将用户输入的密码进行加密
hs = hashlib.md5(passwort.encode())
# # 使用encode方法将字符串编码为UTF-8格式的字节序列
shurumima = hs.hexdigest()
# 以16进制输出
if dc[account] == shurumima:
print("登陆成功")
# 再去判断dc[account] == 加密的密码
elif select == 0:
sys.exit()
08-06
555
07-02
1297