一· hashlib简介
1.hash是一种算法,该算法接收传入的内容,经过运算得到一串hash值
2.hash值的特点:
a. 只要传入内容一样,则所获hash值一样
b. 不能由hash值反解出内容
c. 只要使用的hash算法不变,无论校验的内容多大,所得的hash长度是固定的
二、使用
import hashlib
obj = hashlib.md5() # 创建一个hash对象
obj.update("康".encode("utf-8")) # 利用update传输字符串 并返回hash值
print(obj, type(obj))
注意在进行md5哈希运算前应该编码
获取加密字符串:
import hashlib
obj = hashlib.md5()
obj.update("康".encode("utf-8"))
kang = obj.hexdigest()
print(kang)
204ec6eb7a10f35de2fa2579073bae6b
构造加密函数(返回加密字符串):
import hashlib
def jia_mi(data):
obj = hashlib.md5()
obj.update("data".encode("utf-8"))
kang = obj.hexdigest()
return kang
kan = jia_mi("小明")
print(kan)
输出:
8d777f385d3dfec8815d20f7496026dc
利用hashlib对用户登录进行加密:
import hashlib
USER_LIST = []
def jia_mi(data):
obj = hashlib.md5()
obj.update("data".encode("utf-8"))
kang = obj.hexdigest()
return kang
def register():
print('**************用户注册**************')
while True:
user = input('请输入用户名:')
if user == 'K':
return
password = input('请输入密码:')
temp = {'username': user, 'pass': password}
USER_LIST.append(temp)
def login():
print('**************用户登陆**************')
user = input('请输入用户名:')
password = input('请输入密码:')
for item in USER_LIST:
if item['username'] == user and item['pass'] == password:
return True
else:
return False
register()
Bool = login()
if Bool:
print("登陆成功!")
else:
print("用户名或密码错误!")
输出界面:
**************用户注册**************
请输入用户名:kang
请输入密码:123
请输入用户名:K
**************用户登陆**************
请输入用户名:kang
请输入密码:123
登陆成功!
Process finished with exit code 0
文章若有错误,请指正