如何在Python中計算文件的MD5哈希

本文是對這篇文章的翻譯:如何在Python中計算文件的MD5哈希

MD5是一種消息摘要算法,用於從可變輸入數據中創建唯一的固定大小值。MD5通常用於檢查文件在傳輸過程中是否損壞(在這種情況下,哈希值稱爲校驗和)。文件中的任何更改都將導致不同的MD5哈希值。

以下Python程序計算給定文件的MD5哈希值。計算出的128位MD5哈希將轉換爲可讀的十六進制形式。

Python程序生成文件的MD5哈希值

import hashlib
 
filename = input("Enter the file name: ")
with open(filename,"rb") as f:
    bytes = f.read() # read file as bytes
    readable_hash = hashlib.md5(bytes).hexdigest();
    print(readable_hash)

請注意,由於我們在計算MD5哈希值之前將整個文件讀取到內存中,因此上述程序對於大型輸入文件可能會失敗。以下python程序是經過改進的版本,能夠處理大文件

Python程序生成大文件的MD5哈希值

import hashlib
 
filename = input("Enter the file name: ")
md5_hash = hashlib.md5()
with open(filename,"rb") as f:
    # Read and update hash in chunks of 4K
    for byte_block in iter(lambda: f.read(4096),b""):
        md5_hash.update(byte_block)
    print(md5_hash.hexdigest())
這是上面的程序是動作,

python3 md5hash2.py
輸入文件名:md5hash2.py
0101ae2ac06b8a52154100e37d8bafea
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章