python生成哈希值_Python 生成哈希hash--hashlib模块

本文介绍了如何使用Python的hashlib模块生成哈希值,将哈希值与用户密码结合,并通过shelve模块保存到本地。还演示了一个简单的登录系统,通过比较输入的密码哈希值与本地存储的哈希值来验证用户身份。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值