應用於用戶登錄,對密碼進行加密操做,算法
#文件操做
# 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
爲防止非法人員惡意盜取spa
加鹽用法code
# 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()
判斷視頻文件的一致性blog
# 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 越大越安全 md5