Bonjour !

J'essaie de comparer le MD5 d'un fichier local et d'un fichier distant (à priori le même fichier que je copie/colle dans mon repertoire www de wamp), mais je ne comprends pas les "checksum" ne correspondent pas....

Voici le code pour les checksum :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#-*- 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.readline(8192)
                #print data #OUTPUT DE DATA
                if not data:
                    break
                m.update(data)
            return m.hexdigest()
    else:
        r = requests.get(url)
        m = hashlib.md5()
        for line in r.iter_lines(chunk_size=8192):
            #print line #OUTPUT DE LINE
            m.update(line)
        return m.hexdigest()
 
print "checksum_local :",md5Checksum("projectg715gb.pak",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/projectg715gb.pak")
Et à ma grande surprise j'obtiens ceci en sortie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
checksum_local : 9d33806fdebcb91c3d7bfee7cfbe4ad7
checksum_remote : a13aaeb99eb020a0bc8247685c274e7d
Taille de Projectg715gb.pak = 14.7Mo
Cependant ce code fonctionne sur de petits fichiers, si je prends un fichier texte "toto.txt" de taille 1ko les checksum vont correspondre....

Quelqu'un peut-il m'expliquer pourquoi svp ? Merci d'avance !

PS : Je débute sur les checksum donc peut-être que je m'y suis mal pris....Merci pour votre indulgence