hashlib 模組 摘要演算法

2022-04-25 07:54:48 字數 1874 閱讀 4691

應用於使用者登陸,對密碼進行加密操作,

#檔案操作

# hashlib 摘要演算法

#md5 演算法: 是32位的16進製制組成的數字字元組成的字串

#應用最廣的摘要演算法

#效率高,相對不複雜,如果只是傳統摘要不安全

#sha 演算法 :40位的16進製制組成的數字字元組成的字串

#sha演算法比md5演算法要更加複雜

#且sha n 演算法越大越安全,耗時越久

普通用法

from

hashlib

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)

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 越大越安全 

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型別屬於雜湊型別,把任意長度的資料通過演算法函式轉換成固定長度的值,特點 不可逆 無法根據雜湊值來還原原來的資料 定長輸出 無論輸入的原始資料...