我希望从两个文件创建一个哈希,但不确定如何做。
通过使用下面的代码,我可以一次散列一个文件。
#functions: create sha384 hash
def create_hash(folder, filename):
BLOCKSIZE = 65536
hasher = hashlib.sha384()
with open(folder + filename, 'rb') as afile:
buf = afile.read(BLOCKSIZE)
while len(buf) > 0:
hasher.update(buf)
buf = afile.read(BLOCKSIZE)
#print(hasher.hexdigest())
return BLOCKSIZE, hasher
BLOCKSIZE, hasher = create_hash(ARCHIVE_FOLDER, ARCHIVE_FILENAME)
理想情况下,我想对此进行调整,这样它将采用两个文件,并生成两个文件的一个哈希?不确定这是不是真的可能。
编辑:我已经按如下方式更新了代码。它运行了,但我只得到了以下输出,我不确定为什么。有谁有什么见解吗?
组合:位于0x000001DFFC9929B8的_hashlib.HASH对象的内置方法十六进制
#functions: create sha384 hash
def create_hash2(folder, filename1, filename2):
BLOCKSIZE = 65536
hasher = hashlib.sha384()
with open(folder + filename1, 'rb') as afile, open(folder + filename2, 'rb') as bfile:
buf = afile.read(BLOCKSIZE) and bfile.read(BLOCKSIZE)
while len(buf) > 0:
hasher.update(buf)
buf = afile.read(BLOCKSIZE) and bfile.read(BLOCKSIZE)
#print(hasher.hexdigest())
return BLOCKSIZE, hasher
#test
BLOCKSIZE, hasher = create_hash2(ARCHIVE_FOLDER, '1--2019-06-13-archive.zip', '2--2019-06-13-archive.zip')
print('combined: ' + str(hasher.hexdigest))
https://stackoverflow.com/questions/56586277
复制相似问题