一:
def calc_md5(password): pwd = hashlib.md5() pwd.update(password.encode('utf-8')) return pwd.hexdigest()
db = { 'michael': 'e10adc3949ba59abbe56e057f20f883e', 'bob': '878ef96e86145580c38c87f0410ad153', 'alice': '99b1c2188db85afee403b1536010c2c9' }
def login(user, password): pwd_md5 = calc_md5(password) if pwd_md5 == db[user]: return True else: return False
二:
import hashlib, random
def get_md5(s): return hashlib.md5(s.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(password + self.salt) db = { 'michael': User('michael', '123456'), 'bob': User('bob', 'abc999'), 'alice': User('alice', 'alice2008') }
def login(username, password): user = db[username] password = password + user.salt return user.password == get_md5(password)
assert login('michael', '123456') assert login('bob', 'abc999') assert login('alice', 'alice2008') assert not login('michael', '1234567') assert not login('bob', '123456') assert not login('alice', 'Alice2008') print('ok')
Sign in to make a reply
小羊飞的
一:
def calc_md5(password): pwd = hashlib.md5() pwd.update(password.encode('utf-8')) return pwd.hexdigest()
db = { 'michael': 'e10adc3949ba59abbe56e057f20f883e', 'bob': '878ef96e86145580c38c87f0410ad153', 'alice': '99b1c2188db85afee403b1536010c2c9' }
def login(user, password): pwd_md5 = calc_md5(password) if pwd_md5 == db[user]: return True else: return False
二:
import hashlib, random
def get_md5(s): return hashlib.md5(s.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(password + self.salt) db = { 'michael': User('michael', '123456'), 'bob': User('bob', 'abc999'), 'alice': User('alice', 'alice2008') }
def login(username, password): user = db[username] password = password + user.salt return user.password == get_md5(password)
测试:
assert login('michael', '123456') assert login('bob', 'abc999') assert login('alice', 'alice2008') assert not login('michael', '1234567') assert not login('bob', '123456') assert not login('alice', 'Alice2008') print('ok')