完成注册登陆系统中的登录部分代码

# 注册登录系统

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 account in dc:

        password = ("请输入密码:")

        ho = hashlib.md5(password.encode())

        encrypt = ho.hexdigest()

        if encrypt == dc[account]:

            print("登录成功")

        else:

            print("登录失败")

elif no == 0:

            print("退出系统")

完成注册登陆系统中的登录部分代码_第1张图片

完成注册登陆系统中的登录部分代码_第2张图片 

 

你可能感兴趣的:(python)