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)运行