Исправлен хэш файла с sha512

#python #python-3.x #sha512 #hashlib #filehash

Вопрос:

Я использую этот код для хэширования файлов, однако хэши меняются каждый раз, когда я запускаю скрипт… Как получить фиксированный хэш, пожалуйста ? Может быть, есть случайное семя, мне оно для этого не нужно.

У меня просто есть список файлов в папке, и мне нужен их уникальный и фиксированный хэш для каждого из них :

 import sys import os import hashlib  # BUF_SIZE is totally arbitrary, change for your app! BUF_SIZE = 65536 # lets read stuff in 64kb chunks!  files = [f for f in os.listdir('.') if os.path.isfile(f)]  sha512 = hashlib.sha512()  hashes = []  for file in files:  with open(file, 'rb') as f:  while True:  data = f.read(BUF_SIZE)  if not data:  break  sha512.update(data)  hashes.append(file "|" sha512.hexdigest())  with open("hash.txt", 'w ') as f:  for h in hashes:  f.write(h 'n')  print(h)  

Вывод представляет собой файл с каждым именем файла и хэшем файла. Весь хэш файла должен быть одинаковым каждый раз, когда я запускаю скрипт (не в случае rn)

Комментарии:

1. Ваш хэш включает текущий файл и все предыдущие файлы. Это то, чего ты хочешь? Это будет означать, что хэши будут другими, если файлы будут прочитаны в другом порядке, или если файл будет добавлен или изменен.

2. Спасибо за ваш ответ. Я не понимаю. У меня просто есть список файлов в папке, и мне нужен их уникальный и фиксированный хэш для каждого из них

3. Попробуйте переместить линию, которая начинается sha512 = сразу после линии, начинающейся with

4. Спасибо тебе !! невероятно !