python编写简单登录系统(密码混淆加密)

输入非123的数字会显示输入123选项,输入空格或者回车会报错,因为choice设置成int型

先输入2个正常账户进去

预防了用户名为空,密码为空或者小于3个,用户名已存在3种情况

只有用户名和对应的密码都输入正确才能登录成功

输入选项3退出

代码如下:
import sys
import hashlib

users=[]
salt="@@##$@!?"

def passwd_md5(passwd):
    md5=hashlib.md5(passwd.encode("utf-8"))
    md5.update(salt.encode("utf-8"))
    return md5.hexdigest()

def menu():
    while True:
        print("*"*20)
        print("1.注册")
        print("2.登录")
        print("3.退出")
        print("*"*20)
        choice=int(input("请输入选项:"))
        if 1<=choice<=3:
            break
        else:
            print("请输入1 or 2 or 3选项")
    return choice

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

def register():
    username=str(input("请注册用户名:"))
    passwd=str(input("请注册密码:"))
    if len(username.replace(" ",""))<1:
        print("用户名不能为空")
        return
    if len(passwd.replace(" ",""))<3:
        print("密码长度不能小于3位")
        return
    if exit_Username(username):
        print("用户已存在")
        return
    user={}
    user["username"]=username
    user["passwd"]=passwd_md5(passwd)
    users.append(user)
    print(users)

def login(username,passwd):
    for i in users:
        if i.get("username")==username:
            if i.get("passwd")==passwd:
                return True
    return False

def login_Menu():
    username=str(input("请输入要登录的用户名:"))
    passwd=str(input("请输入密码:"))
    passwd=passwd_md5(passwd)
    if login(username,passwd):
        print("登录成功")
    else:
        print("登录失败")

while True:
    choice=menu()
    if choice==1:
        register()
    if choice==2:
        login_Menu()
    if choice==3:
        print("系统退出中...")
        sys.exit()

你可能感兴趣的:(python,开发语言)