目录
制作一个简易的注册登陆系统
实现过程
声明需要用到的库
构造一个判断用户文件是否存在的函数
构造一个存储用户文件的函数
制作UI
制作系统主体
运行效果
制作一个简易的注册登陆系统
通过所学知识制作一个简易的注册登陆系统,要求可以存储账户及密码,并且密码使用密文存储。
实现过程
声明需要用到的库
import hashlib
import json
import os
import sys
构造一个判断用户文件是否存在的函数
def load_account(path):
if os.path.exists(path): #判断文件是否存在
return json.load(open(path, "rt", encoding="utf-8")) #通过json模块读取账户、密码
else:
return {} #若文件不存在返回一个字典
构造一个存储用户文件的函数
def save_account(account_info, path):
json.dump(account_info, open(path, "wt", encoding="utf-8")) #将账户、密码存入文件
制作UI
UI = """
1.注册
2.登陆
0.退出
"""
制作系统主体
使用while循环程序
while True:
print(UI)
select = int(input("请输入你的选择:"))
if select == 1:
# 注册
account = input("请输入账户:")
dc = load_account("account.txt") #读取用户文件
if dc.get(account): #判断用户是否存在
print("该账户已存在,请重新注册")
else:
password = input("请输入密码:")
confirm = input("请再次输入密码:")
if password == confirm:
hs_obj = hashlib.md5(password.encode()) #使用md5对密码进行哈希加密
dc[account] = hs_obj.hexdigest() #将账户与密码绑定
save_account(dc, "account.txt") # 将账户密码保存到文件
print("注册成功!")
else:
print("密码输入不一致")
elif select == 2:
#登陆
account = input("请输入账户:")
dc = load_account("account.txt") #调用文件
if dc.get(account): #判断账户是否存在
password = input("请输入密码:")
hs_obj = hashlib.md5(password.encode()) #将密码进行hash运算
hs_obj = hs_obj.hexdigest()
if hs_obj == dc[account]: #验证密码
print("登录成功!")
sys.exit() #结束程序
else:
print("账户或密码输入错误!")
else:
print("该账户不存在!")
elif select == 0:
sys.exit() #结束程序
运行效果
注:该程序运行时会生成一个account.txt的文本文件,其中储存的是账户及密码