Discuss / Python / 模拟注册,登录

模拟注册,登录

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

import hashlib, re, json


def get_md5(password):
    m = hashlib.md5()
    m.update(password.encode('utf-8'))
    return m.hexdigest()


def register(user, password):
    try:
        with open(r'D:\test.txt', 'r') as f:
            db = json.load(f)
    except:
        db = {}
    dbr = db
    if user in dbr:
        print('username exist,cant register.')
        return False
    if not re.match('\w+', user):
        print('username is invalid.')
        return False
    if not re.match('\w+', password):
        print('password is invalid.')
        return False
    dbr[user] = get_md5(password + user + 'the-Salt')
    with open(r'D:\test.txt', 'w') as f:
        json.dump(dbr, f)
    print('register success.')
    return True


def login(user, password):
    try:
        with open(r'D:\test.txt', 'r') as f:
            dbl = json.load(f)
    except:
        print('Dict does not exist.')
        return False
    if user not in dbl:
        print('User does not exist.')
        return False
    if get_md5(password + user + 'the-Salt') == dbl[user]:
        print('login success.')
        return True
    else:
        print('Password incorrect.')
        return False


user_r = input('register user:')
pw_r = input('register password:')
register(user_r, pw_r)

user_l = input('login user:')
pw_l = input('login password:')
print(login(user_l, pw_l))

复习了字典,字符匹配,文件读写,序列化-JSON 的用法。以上程序可以分成2个,字典文件的路径可以自定义。 我的作业地址,欢迎交流指正 https://github.com/xiajava/learn-python3


  • 1

Reply