如何在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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章