jQuery火箭图标返回顶部代码

hashlib加密用户认证

#     1、编写用户认证功能,要求如下
#         1.1、对用户密码加盐处理
#         1.2、用户名与密文密码存成字典,是以json格式存到文件中的
#         1.3、要求密用户输入明文密码,但程序中验证的是密文


import hashlib,os,json

BASE_PATH=os.path.dirname(__file__)
BASE_DB='%s/db' %(BASE_PATH)

def entry():
    name=input('输入你的账户: ').strip()
    passwd=input('输入你的密码: ').strip()
    BASE_NAME='%s/%s' %(BASE_DB,name+'.json')
    return name,passwd,BASE_NAME

def mima(passwd2):
    m = hashlib.md5()
    m.update('墨颜 缔造非凡'.encode('utf-8'))
    m.update(passwd2.encode('utf-8'))
    m.update('666'.encode('utf-8'))
    passwd2 = m.hexdigest()
    return passwd2

def isdigit():
    while True:
        name,passwd,BASE_NAME=entry()
        passwd=mima(passwd)
        if name.isalnum():
            if os.path.isfile(BASE_NAME):
                print('%s用户已存在,请更换昵称!' %name)
            else:
                with open(BASE_NAME,'w+',encoding='utf-8') as f:
                    dic={'name':name,'passwd':passwd}
                    json.dump(dic,f)
                    print('注册成功')
                break
        else:
            print('输入非法')
    return
def denglu():
    name,passwd,BASE_NAME = entry()
    if os.path.exists(BASE_NAME):
        with open(BASE_NAME,'r',encoding='utf-8') as f:
            f=json.load(f)
            passwd=mima(passwd)
            if f['passwd']==passwd:
                print('登录成功,888')
            else:
                print('密码错误')
    else:
        print('当前用户没注册')
    return

def run():
    choice = input('1、注册 \n2、登陆 \n>>>   ').strip()
    if choice=='1':
        isdigit()
    elif choice=='2':
        denglu()
    else:
        print('输入非法')
run()

 

posted @ 2018-04-10 18:53  墨颜丶  阅读(158)  评论(0编辑  收藏  举报