• Hashlib 用户名密码加密 2.0


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2018/7/10 0008 11:44
    # @Author : Anthony.Waa
    # @Site :
    # @File : auth.py
    # @Software: PyCharm

    import hashlib
    from conf import settings
    from core.logger import Logger


    def login(): # 用户登录
    count_end = 3
    counts = 1
    while True:
    username = input('请输入用户名:').strip()
    password = input('请输入密码:').strip()
    verifys = verify(username, password)
    if verifys == True:
    if user_identity_status['identity'] == '001':
    print('管理员%s登录成功'%user_identity_status['usernaems'])
    break
    elif user_identity_status['identity'] == '002':
    print('用户%s登录成功'%user_identity_status['usernaems'])
    break
    else:
    print(verifys)
    count_end -= 1
    print('账户名或密码输入错误,请重新输入...')
    print('还剩%s次输入机会...' % count_end)
    if counts == 3:
    print('账户或密码输入错误超过3次')
    exit()
    counts += 1


    user_identity_status = {'usernaems':None,'identity':None,'status':None} # 管理员身份为001,普通用户为002

    def verify(username, password): # 用户名和密码验证
    md5_obj = hashlib.md5(username.encode('utf-8'))
    md5_obj.update(password.encode('utf-8'))
    while True:
    with open(settings.manageinfo_path, 'r') as read_manage_verify:
    for manageinfo_line in read_manage_verify:
    if manageinfo_line.strip() == md5_obj.hexdigest():
    user_identity_status['usernaems'] = username
    user_identity_status['identity'] = '001'
    return True
    else:
    with open(settings.userinfo_path, 'r') as read_verify:
    for userinfo_line in read_verify:
    if userinfo_line.strip() == md5_obj.hexdigest():
    user_identity_status['usernaems'] = username
    user_identity_status['identity'] = '002'
    return True
    else:
    return False



    def register(): # 用户注册
    while True:
    print('提示:用户名必须小于8位,密码必须小于12位')
    username = input('请输入用户名:').strip()
    password = input('请输入密码:').strip()
    md5_obj = hashlib.md5(username.encode('utf-8'))
    md5_obj.update(password.encode('utf-8'))

    if 1 < len(username) <= 8 and 1 < len(password) <= 12:
    verifys = verify(username, password) # 验证密码和用户名是否存在
    if verifys:
    print('用户名:%s 已存在,请重新输入...' % username)
    break
    else:
    update_identitys = input('请确认是否将%s设定为管理员(Y/N)' % username).strip() # 确认用户是否为管理员

    if update_identitys.lower() == "y":
    with open(settings.manageinfo_path, 'a+') as manage_write:
    manage_write.write(md5_obj.hexdigest() + ' ')
    print('管理员%s注册成功'%username)
    with open(settings.userinfo_path, 'a+') as write_register:
    write_register.write(md5_obj.hexdigest() + ' ')
    break

    elif update_identitys.lower() == 'n':
    with open(settings.userinfo_path, 'a+') as write_register:
    write_register.write(md5_obj.hexdigest() + ' ')
    print('%s已注册成功' % username)
    judge_exit = input('是否继续注册(Y/N):').strip()
    if judge_exit.lower() == 'y':
    continue
    elif judge_exit.lower() == 'n':
    Logger.logger.warning('退出注册程序' + ' ')
    break
    else:
    Logger.logger.warning('%s用户注册时,输入错误' % username + ' ')

    else:
    Logger.logger.warning('%s用户输入选项错误,请重新输入...' % username)

    else:
    print('用户名或密码位数不符合规定...')
    continue


    def user_exit():
    Logger.logger.warning('退出成功' + ' ')
    exit()
  • 相关阅读:
    .NET微服务调查结果
    发布基于Orchard Core的友浩达科技官网
    Followme Devops实践之路
    积极参与开源项目,促进.NET Core生态社区发展
    Service Fabric 与 Ocelot 集成
    “.Net 社区大会”(dotnetConf) 2018 Day 1 主题演讲
    Project file is incomplete. Expected imports are missing 错误解决方案
    稳定工作和创业之间的抉择
    回顾4180天在腾讯使用C#的历程,开启新的征途
    ML-Framework:ML.NET 0.3 带来新组件
  • 原文地址:https://www.cnblogs.com/ipyanthony/p/9288919.html
Copyright © 2020-2023  润新知