# 注册登录系统 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): # 如果account已经存在于字典中,那么get方法会返回account对应的密码,此时if的结果就是真 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 = load_account() # 让用户输入账户 account = input("请输入账户:") # 判断用户输入的账户是否在本地保存的信息中, if dc.get(account): # 如果用户输入的账户存在,则判断用户输入的密码(加密后的密码)是否跟系统中保存的一致 password = input("请输入密码:") # 加密密码 ho = hashlib.md5(password.encode()) encrypt = ho.hexdigest() # 因为是字典,所有要有键(account)和值(encrypt),才能判断到对应的账户(键)和密码(值) if dc.get(account, encrypt): print("登入成功") else: print("登入失败,请重新输入密码") else: print("账户不存在,请重新输入") # 如果一致 登陆成功 反之登录失败
04-14
3402
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-22
08-12
3050
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-10
4871
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交