Python 中 MD5 哈希函數(shù)的實現(xiàn)

什么是MD5?
Python中的MD5哈希
與md5相關(guān)的功能
示例1:在Python中打印等效于MD5哈希的字節(jié)
示例2:在Python中打印MD5哈希的十六進制等效項
示例3:Python MD5文件校驗輸出與說明
示例4:使用Python在MD5中編碼字符串輸出與說明
示例5:在Python中計算文件的MD5哈希輸出與說明
應(yīng)用范圍
優(yōu)點
缺點
結(jié)論
hashlib模塊中可用。它以字節(jié)序列作為輸入,并返回128位哈希值作為輸出。散列函數(shù)的主要用途是檢查數(shù)據(jù)完整性,但存在安全性問題。encode():將字符串轉(zhuǎn)換為字節(jié)digest(): 以字節(jié)格式返回編碼數(shù)據(jù)hexdigest():以十六進制格式返回編碼的數(shù)據(jù)
import?hashlib?
?
result?=?hashlib.md5(b'Python?Pool')?
print("Hash?Value?:?",?end?="")
print(result)
print("Equivalent?Byte?:?",?end?="")?
print(result.digest())?

digest()函數(shù)生成了編碼字符串的等效字節(jié)。import?hashlib?
?
result?=?hashlib.md5('Python?Pool'.encode())?
print("Hash?Value?:?",?end?="")
print(result)
print("Hexadecimal?Equivalent?:?",?end?="")?
print(result.hexdigest())?

encode()函數(shù)將字符串轉(zhuǎn)換為等效的字節(jié),從而使其被哈希函數(shù)接受。然后,我們使用md5函數(shù)對其進行編碼,最后,使用hexdigest()函數(shù)顯示其十六進制等效項。md5_hash?=?hashlib.md5()
?
file?=?open("test.txt",?"rb")
content?=?file.read()
md5_hash.update(content)
?
result?=?md5_hash.hexdigest()
print(result)

hashlib.md5()函數(shù)以創(chuàng)建MD5對象。我們以“ rb”模式打開了一個文件,其中rb代表“ read bytes”。使用read()方法,我們將文件的內(nèi)容讀取到一個變量中。update()方法更新文件內(nèi)容。最后,使用hexdigest()方法,我們將哈希值轉(zhuǎn)換為等效的十六進制值。import?hashlib?
string?=?"pythonpool.com"
encoded=string.encode()
result?=?hashlib.md5(encoded)
print("String?:?",?end?="")
print(string)
print("Hash?Value?:?",?end?="")
print(result)
print("Hexadecimal?equivalent:?",result.hexdigest())

hashlib.md5()函數(shù)將字符串值編碼為哈希值。然后,我們使用hexdigest()方法來獲取生成的哈希值的十六進制等效項。同樣,我們也可以使用digest()方法來獲取與生成的哈希值等效的字節(jié)。import?hashlib
?
with?open("sample.txt","rb")?as?f:
????bytes?=?f.read()
????print("Bytes?read?from?the?file:",bytes)
????result?=?hashlib.md5(bytes)
????print("Hah?Value:?",result)
????print("The?hexadecimal?equivalent:?")
????print(result.hexdigest())

在軟件中使用,以確保傳輸?shù)奈募暾麩o缺 通過為在法律發(fā)現(xiàn)過程中交換的每個文檔提供唯一的標識符,它也可用于電子發(fā)現(xiàn)(對可能涉及到訴訟相關(guān)的電子證據(jù)的歸檔和再現(xiàn))
提供一個任意大小的安全輸入(如果使用128位,則可以產(chǎn)生輸出) 原始消息的消息摘要的生成非常簡單 可以執(zhí)行具有任意位數(shù)的消息的消息摘要
容易出現(xiàn)哈希沖突的弱點 沒有提供針對這些碰撞攻擊的安全性 與優(yōu)化的SHA算法相比,速度相當慢
更多閱讀
特別推薦

點擊下方閱讀原文加入社區(qū)會員
評論
圖片
表情
