博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 生成哈希hash--hashlib模块
阅读量:5108 次
发布时间:2019-06-13

本文共 1339 字,大约阅读时间需要 4 分钟。

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

 

转载于:https://www.cnblogs.com/sjc9009/p/9190695.html

你可能感兴趣的文章
MVC返回JSON,IE下无法接收JSON,IE下JSON提示另存为
查看>>
Python元类(metaclass)以及元类实现单例模式
查看>>
Codeforces.GYM101612E.Equal Numbers(贪心)
查看>>
树莓派开启SSH
查看>>
大数据Hadoop Hive HBase Spark Storm
查看>>
eclipse中安装Open Explorer
查看>>
关于数组比较
查看>>
求期望 ZOJ 3329 One Person Game
查看>>
Tcp连接的七次握手浅析
查看>>
开源框架.netCore DncZeus学习(三)增加一个菜单
查看>>
[SDOI2019]世界地图(kruskal重构树+虚树)
查看>>
使用C#通过调用minitab的COM库自动化生成报表
查看>>
(三)、
查看>>
linux输入子系统之按键驱动
查看>>
SVN提交文件失败:系统找不到指定路径
查看>>
团队组建的一些想法
查看>>
Markdown快速入门
查看>>
linux 下部署 java quartz job
查看>>
HTML5 中 40 个最重要的技术点
查看>>
Git——简说.git目录【五】
查看>>