Python 文件散列值是指通過加密算法對文件內容進行轉換,并生成固定長度的字符串。它通常用于驗證文件的完整性和安全性,比如對下載的文件進行校驗,以確保文件未被篡改或損壞。在 Python 中,hashlib 模塊提供了多種加密算法,如 MD5、SHA-1、SHA-256 等,可以方便地計算文件的散列值。
import hashlib def file_checksum(filename, algorithm='sha256'): h = hashlib.new(algorithm) with open(filename, 'rb') as f: while True: data = f.read(1024 * 1024) if not data: break h.update(data) return h.hexdigest() md5sum = file_checksum('filename.txt', 'md5') sha256sum = file_checksum('filename.txt', 'sha256') print('MD5:', md5sum) print('SHA-256:', sha256sum)
上面的代碼中,file_checksum 函數接收文件名和算法作為參數,使用 with 語句打開文件并逐塊讀取數據,每次讀取后都調用 update 方法更新哈希值。最后返回哈希值的十六進制表示。
通過計算文件的散列值,我們可以輕松地判斷兩個文件是否相同。如果兩個文件的散列值相同,則可以認為這兩個文件是相同的。另外,文件散列值還可以用于加密和解密操作,比如密碼存儲、數字簽名等。