Discuss / Python / 作业

作业

Topic source

代码有些长,不太会什么简写或者优化,请各位指点一下

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import hashlib
db = {}


#定义一个函数用于在输入选择指令时只输出'Y'或者'N'
def check(s):
    while True:
        i=input(s)
        if i=='Y'or i=='N':
            break
        else:
            print('指令输入错误,请重新输入!')
    return i


#定义一个函数,该函数用于获取字符串的MD5口令
def get_md5(s):
    md5 = hashlib.md5()
    md2 = md5.update(s.encode('utf-8'))
    return  md5.hexdigest()


#定义注册函数
def register(username, password):
    if username in db:
        s1='用户名已存在,是否覆盖(Y/N):'
        i=check(s1)
        if i=='Y':
            db[username] = get_md5(password + username + 'the-Salt')
        else:
            pass
    else:
        db[username] = get_md5(password + username + 'the-Salt')
        print('注册成功!')


#定义登录函数
def login(username, password):
    password=password + username + 'the-Salt'
    if username in db:
        if db[username]==get_md5(password):
            return '登陆成功'
        else:
            return '密码错误'
    else:
        return'用户名不存在'


if __name__ == '__main__':
    #注册:
    print('-'*15,'开始注册','-'*15)
    while True:
        username=input('请输入用户名:')
        password=input('请输入密码:')
        register(username, password)

        s2='是否继续添加用户(Y/N):'
        j=check(s2)
        if j=='Y':
            pass
        elif j=='N':
            break
    #:登录
    print('\n')
    print('-'*15,'开始登录','-'*15)
    u=input('请输入用户名:')
    p=input('请输入密码:')
    print(login(u, p))

  • 1

Reply