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 @   墨颜丶  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示