Python练习04

目录

制作一个简易的注册登陆系统

实现过程

        声明需要用到的库

        构造一个判断用户文件是否存在的函数

        构造一个存储用户文件的函数

        制作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的文本文件,其中储存的是账户及密码

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值