Python 实现用户登录系统 案例 一(基于hashlib & sys)

Python 实现用户登录系统 案例 一(基于hashlib & sys)

  • 基于hashlib 库MD5算法对用户密码进行加密
  • 用户名和密码信息存储在内存中
import sys
import hashlib

"""
    实现一个用户登录系统,用户可以输入用户面进行用户的注册、用户的登录、退出系统等操作。
    为了安全起见,引入hashlib中的MD5算法对用户密码进行明文加密。
"""


users = []
slat = "'zhangwanqiangR%BIYGGF#BUYybjuhunBYGBnnB)((*&&^%$$#$%Y(B~!~`'"

def users_password_md5(user_password):
    user_password_md5 = hashlib.md5(user_password.encode("utf-8"))
    # 密码信息盐值混淆
    user_password_md5.update(slat.encode("utf-8"))
    return user_password_md5.hexdigest()

def main():
    print("~*" *25)
    print()
    print("\t\t\t\t\t用户登录系统")
    print()
    print("\t\t\t\t\t1、用户注册")
    print("\t\t\t\t\t2、用户登录")
    print("\t\t\t\t\t3、退出系统")
    print()
    print("~*" * 25)

    user_chioce = input("请输入您的选择:")
    return user_chioce

def is_exist_user(username):
    for usr in users:
        if usr.get("username") == username:
            return True
    return False

def is_login(user_name, user_password):
    for i in users:
        if i.get("username") == user_name and i.get("userpassword") == user_password:
            return True
    return False


def register():
    user_name = input("请输入您的用户名:")
    user_password = input("请输入您的用户密码:")

    if user_name == None or user_name.strip() == "":
        print("对不起,用户名不能为空")
        return

    if user_password == None or user_password.strip() == "" or len(user_password) < 3:
        print("对不起,用户密码长度不能小于3位")
        return

    if is_exist_user(user_name):
        print("该用户已经存在")

    # 组件一个字典对象
    user = {}
    user["username"] = user_name
    user["userpassword"] = users_password_md5(user_password)
    print(user)
    # 将字典追加进列表
    users.append(user)
    print(users)

def login():
    user_name = input("请输入您的用户名:")
    user_password = input("请输入您的用户密码:")
    # 对用户输入的密码进行DM5加密
    user_password = users_password_md5(user_password)
    if is_login(user_name, user_password):
        print("恭喜您登录成功")
    else:
        print("对不起,您输入的用户名、密码有误!!!")
        print("请您重新登录!")


while True:
    chioce = main()
    if chioce == "1":
        print("用户注册")
        register()
    elif chioce == "2":
        print("用户登录")
        login()
    elif chioce == "3":
        print("退出系统")
        sys.exit(0)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值