Discuss / Python / 交作业:作业二

交作业:作业二

Topic source

明天过后.

#1 Created at ... [Delete] [Delete and Lock User]

Class里面需要修改:在 User 类的构造函数中,当计算密码的 MD5 哈希值时,应该先拼接密码和盐值,然后再调用 get_md5() 函数。

import hashlib, random

def get_md5(user, pwd):
    return hashlib.md5((user.username + pwd + user.salt).encode('utf-8')).hexdigest()

class User(object):   
    def __init__(self, username, password):
        self.username = username
        self.salt = ''.join([chr(random.randint(48, 122)) for i in range(20)])
        self.password = get_md5(self, password)

db = {
    'michael': User('michael', '123456'),
    'bob': User('bob', 'abc999'),
    'alice': User('alice', 'alice2008')
}

def login(username, password):
    user = db[username]
    return user.password == get_md5(user, password)


  • 1

Reply