hashlib 模块 摘要算法
应用于用户登陆,对密码进行加密操作,
#文件操作
# hashlib 摘要算法
#md5 算法: 是32位的16进制组成的数字字符组成的字符串
#应用最广的摘要算法
#效率高,相对不复杂,如果只是传统摘要不安全
#sha 算法 :40位的16进制组成的数字字符组成的字符串
#sha算法比md5算法要更加复杂
#且sha n 算法越大越安全,耗时越久
普通用法
from hashlib def get_md5(s): md5_obj = hashlib.md5() md5_obj.update(s.encode("utf-8")) ret = md5_obj.hexdigest() return ret l1 = get_md5("alex123") print(l1) #b75bd008d5fecb1f50cf026532e8ae67
为防止非法人员恶意盗取
加盐用法
# def get_md5(s): # md5_obj = hashlib.md5("盐".encode("utf-8")) #盐是不变的 # md5_obj.update(s.encode("utf-8")) # ret = md5_obj.hexdigest() # return ret
动态加盐
# def get_md5(name,pwd): # md5_obj = hashlib.md5(name.encode("utf-8")) # md5_obj.update(pwd.encode("utf-8")) # ret = md5_obj.hexdigest() # return ret # l1 = get_md5("alex","alex123") # print(l1)
def get_md5(name,pwd): md5_obj = hashlib.md5((name+pwd).encode("utf-8")) return md5_obj.hexdigest() print(get_md5("alex","alex123"))
#判断文件的一致性校验
# md5_obj = hashlib.md5() # md5_obj.update("hello,world".encode("utf-8")) # ret = md5_obj.hexdigest() # print(ret) # md5_obj = hashlib.md5()
判断视频文件的一致性
# import os,hashlib # def get_file_md5(file_path,buffer= 1024): # md5_obj = hashlib.md5() # file_size = os.path.getsize(file_path) # with open(file_path,"rb") as f: # while file_size: # count = f.read(buffer) # md5_obj.update(count) # file_size -= len(count) # return md5_obj.hexdigest()
使用md5与 sha n系列用法一样,使用sha n 越大越安全