我需要使用加密库从文件中获取 MD5,这是我所拥有的:
from cryptography.hazmat.primitives import hashes
archivos = input()
with open(archivos, "rb") as f:
bfile = f.read()
print(bfile)
readable_hash = hashes.Hash(hashes.MD5())
readable_hash.update(bfile)
readable_hash.finalize()
print(readable_hash)
当我打印 bfile 时,我得到了这个,这就是我需要哈希为 MD5 的内容:
b'RGBX\x01\x00\x00\x00X\x00b\x00o\x00x\x00G\x00a\x00m\x00e\x00s\x00\x00\x00'
当我尝试打印 read_hash 假设它包含 MD5 时,我得到了这个:
<cryptography.hazmat.primitives.hashes.Hash object at 0x000001EE89A17F10>
binascii.b2a_hex
: 将其转换为人类可读的字符串
返回二进制数据的十六进制表示。每个字节的数据都会转换为相应的 2 位十六进制表示形式。因此,返回的字节对象的长度是数据长度的两倍。
import binascii
# ...
data = readable_hash.finalize()
md5_hash = binascii.b2a_hex(data).decode()
print(f"MD5 hash = {md5_hash}")