Я новичок в Python, поэтому я решил сделать небольшой проект, который загружает некоторые файлы с сервера. Все отлично работает, я решил проверить целостность загруженных файлов, сгенерировав MD5 и сравнив с MD5 на сервере. Проблема в том, что это не всегда работает. Иногда с некоторыми файлами он может генерировать правильный MD5, но большинство (около 80%) сгенерированных MD5 не соответствуют серверным.
Я пробовал много разных примеров, которые мог найти для генерации MD5, но все они дают один и тот же результат.
Примечание: я читаю файл кусками по 64 КБ, потому что я немного ограничен в ресурсах (запускаю скрипт на Raspberry Pi), поэтому я подумал, что это будет хорошей идеей для этого. И да, я уже пытался загрузить файл одновременно - тот же результат.
def md5_check(self, file_path, original_md5):
calculated_md5 = hashlib.md5()
with open(file_path, "rb") as file:
while True:
chunk = file.read(65536) #The downloaded file will be read in 64kB chunks
if not chunk: break
calculated_md5.update(chunk)
calculated_md5 = calculated_md5.hexdigest()