Python 生成哈希hash--hashlib模块

1.生成hash并保存在本地

(1)代码

[python] view plain copy
import hashlib 
import shelve 

#原密码paw={"water":"123456","root":"admin123"} 
#生成hash 
m1 = hashlib.md5("123456".encode("utf-8")) 
m2 = hashlib.md5("admin123".encode("utf-8")) 
h1 = m1.hexdigest() 
h2 = m2.hexdigest() 
print(h1) 
print(h2) 

#现在利用shelve保存账号和密码信息到本地 
db1 = shelve.open("E:/Python_Code/work/hash_dic") 
db1["water"] = h1 
db1["admin"] = h2 

(2)输出

e10adc3949ba59abbe56e057f20f883e

0192023a7bbd73250516f069df18b500

2.模仿登陆

上面我们已经生成密码信息的哈希值,并且用shelve库保存到了本地,现在是时候使用它了。

(1)代码

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
[python] view plain copy
import hashlib 
import shelve 

#从shelve文件中读取用户信息 
db1 = shelve.open("E:/Python_Code/work/hash_dic") 

#退出系统 
def tuichu(): 
print("正在退出系统...") 
exit("期待下次与您相遇!") 

# 操作函数,依据用户名给予不同的权限 
def caozuo(user_name): 
if user_name=="admin": 
tuichu() #测试用 
else: 
tuichu() #测试用 
#登录函数 
def login(): 
for i in range(3): #只有3次登录机会 
user_name = input("帐号:") 
user_pass = input("密码:") 
m = hashlib.md5(user_pass.encode("utf-8")) 
hash_pass = m.hexdigest() 
for ku,vu in db1.items(): 
if user_name == ku and hash_pass == vu: 
print("登录成功!欢迎您{}!".format(ku)) 
#这里可以执行操作函数 
caozuo(user_name) 
break 
else: 
print("帐号或密码错误!您还有{}次机会!".format(2-i)) 
continue 
else: 
print("今日登录次数已经用完!") 
if __name__ == '__main__': 
login()

(2)运行
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值