Python 生成哈希hash--hashlib模块
Posted sjc9009
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 生成哈希hash--hashlib模块相关的知识,希望对你有一定的参考价值。
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] 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()
文:http://www.ylsjwang.com/dianshiju/24.html
(2)运行
以上是关于Python 生成哈希hash--hashlib模块的主要内容,如果未能解决你的问题,请参考以下文章