應用於使用者登陸,對密碼進行加密操作,
#檔案操作
# hashlib 摘要演算法
#md5 演算法: 是32位的16進製制組成的數字字元組成的字串
#應用最廣的摘要演算法
#效率高,相對不複雜,如果只是傳統摘要不安全
#sha 演算法 :40位的16進製制組成的數字字元組成的字串
#sha演算法比md5演算法要更加複雜
#且sha n 演算法越大越安全,耗時越久
普通用法
fromhashlib
defget_md5(s):
md5_obj =hashlib.md5()
md5_obj.update(s.encode(
"utf-8"))
ret =md5_obj.hexdigest()
return
retl1 = 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)
defget_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 越大越安全
hashlib摘要演算法
import hashlib 提供摘要演算法的模組 md5 hashlib.md5 bytes salt encoding utf 8 加鹽 動態加鹽,獲取使用者名稱的一部分,來進行加鹽 md5.update b user123 必須是bytes型別 print md5.hexdigest 6ad1...
模組三hashlib模組
加密模組 摘要演算法 一堆加密演算法的集合體 import hashlib 給密碼加密。檔案的校驗。hashlib 將str型別 通過演算法 一串等長度的數字。1,不同的字串 轉化成數字肯定不同。2,相同的字串即使在不同的計算機上只要使用相同的加密方式 轉化成的數字一定相同。3,hashlib加密不...
加密模組hashlib模組
資料時代,為了防止資料安全性,防止資料洩露,會對資料進行加密,對於一些敏感資料庫,更是如此。加密是最常見的保密手段,利用技術手段把重要的資料變為亂碼。hash型別屬於雜湊型別,把任意長度的資料通過演算法函式轉換成固定長度的值,特點 不可逆 無法根據雜湊值來還原原來的資料 定長輸出 無論輸入的原始資料...