本文是對這篇文章的翻譯:如何在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