完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 lee_st 于 2017-12-27 11:58 编辑
进入第九天的学习,之前学习的进程和线程,正则表达式,还有点生疏,没有自己编,只是在事例基础上改动试了试,于是就继续往下学习,昨晚学到了摘要算法,开始以为是很复杂的东西,心里有点打怵,毕竟算法不是我的特长,研究那么高深的东西,心里没底啊。不过往下看才发现,此算法非彼算法啊。大家学习一下就知道了。 遇到下面的练习,第一个是 根据用户输入的口令,计算出存储在数据库中的MD5口令: 发现这个是最简单的啊,把教程中的代码改动一下就可以了。 import hashlib str = '12345' def calc_m5(password): md5 = hashlib.md5() md5.update(password) print md5.hexdigest() print calc_m5(str) 遇到第二个练习,好像加了点难度啊 设计一个验证用户登录的函数,根据用户输入的口令是否正确,返回True或False: db = { 'michael': 'e10adc3949ba59abbe56e057f20f883e', 'bob': '878ef96e86145580c38c87f0410ad153', 'alice': '99b1c2188db85afee403b1536010c2c9', 'john': '827ccb0eea8a706c4c34a16891f84e7b' } def login(user, password): md5 = hashlib.md5() md5.update(password) if md5.hexdigest() == db[user]: return True else: return False print login('michael','123') print login('john','12345') 运行,返回False和True,说明运行正常, 继续往下还有个练习根据用户输入的登录名和口令模拟用户注册,计算更安全的MD5: db = {} def register(username, password): db[username] = get_md5(password + username + 'the-Salt') 然后,根据修改后的MD5算法实现用户登录的验证: def login(username, password): pass 首先,实现register函数,就要同时实现get_md5函数,如下 def get_md5(username): md5 = hashlib.md5() md5.update(username) return md5.hexdigest() def register(username,password): return db[username] == get_md5(password + username+ 'salt_param') 然后开始login函数 def login(username, password): if register(username,password) == True: print 'load successed' else: print 'load failed' print login('michael','123456') 运行,输出load successed,说明代码是正确的。原理方面的,大家自己看教程,不多赘述。 编辑与 2017年12月27日 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
39个成员聚集在这个小组
加入小组3368 浏览 0 评论
5978 浏览 0 评论
2293 浏览 0 评论
5292 浏览 0 评论
1933 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 20:19 , Processed in 0.532920 second(s), Total 39, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号