import hashlib db={} def get_md5(passwd): md5=hashlib.md5() md5.update(passwd.encode('utf-8')) return md5.hexdigest() def login(username,password): if db.get(username,None) is not None: return db[username]==get_md5(password+username+'*the*Salt*') return False def register(username,password): global db db[username]=get_md5(password+username+'*the*Salt*') if __name__ == "__main__": register('michael','123456') register('bob','888888') register('alice','password') assert login('michael','123456') assert login('bob','888888') assert login('alice','password')
不能加入用户名作为盐值吧亲,万一用户名改了岂不是登录不了了吗?一般盐值使用基本不会变的值,比如注册时间等
亲,不要在意那些细节. 非要较真的话我这个代码里的username确实不许修改, 允许用户修改的专门有一个nickname字段,因为和作业无关,我没放上来. 你信了吗?
Sign in to make a reply
匿名sina网友V