Я хочу создать хеш из двух файлов, но не знаю, как это сделать.
Я могу хешировать один файл за раз, используя приведенный ниже код.
#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)
В идеале я бы хотел настроить это так, чтобы он занимал два файла и генерировал один хэш из двух файлов?Не уверен, возможно ли это на самом деле.
Редактировать: я обновил код следующим образом.Он работает, но я получаю только следующий вывод, и я не уверен, почему.У кого-нибудь есть идеи?
в сочетании: встроенный метод hexdigest объекта _hashlib.HASH по адресу 0x000001DFFC9929B8
#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))