Я пытаюсь сравнить локальный и удаленный файл MD5-хеша (тот же файл, который я копирую / вставляю в мой каталог wamp "www"), но я не понимаю, почему "контрольные суммы" не соответствуют ...
Вот код контрольной суммы:
#-*- coding: utf-8 -*-
import hashlib
import requests
def md5Checksum(filePath,url):
if url==None:
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()
else:
r = requests.get(url, stream=True)
m = hashlib.md5()
for line in r.iter_lines():
m.update(line)
return m.hexdigest()
print "checksum_local :",md5Checksum("projectg715gb.pak",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/projectg715gb.pak")
И я удивлен, получив этот вывод:
checksum_local : 9d33806fdebcb91c3d7bfee7cfbe4ad7
checksum_remote : a13aaeb99eb020a0bc8247685c274e7d
Размер "projectg715gb.pak" равен 14,7 МБ
Но если я попытаюсь с текстовым файлом (размер 1Кб):
print "checksum_local :",md5Checksum("toto.txt",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/toto.txt")
Тогда это сработает oO Я получаю такой вывод:
checksum_local : f71dbe52628a3f83a77ab494817525c6
checksum_remote : f71dbe52628a3f83a77ab494817525c6
Я новичок в сравнении хэша MD5так что будьте добры, пожалуйста ^^ 'Возможно, я сделал какую-то большую ошибку, я не понимаю, почему это не работает с большими файлами, если кто-то может дать мне подсказку, это будет супер приятно!
Однако спасибо за чтение и помощь!