suite au questionnement d'un ami qui souhaitait trouver les images
dupliquées sur son disque, je me suis lancé dans l'écriture d'un petit
script python pour comparer les empreintes numériques md5 des images.
Le problème, c'est qu'en faisant des tests, il y a des images
différentes (fichier .jpg) qui ont la MEME EMPREINTE NUMERIQUE:
je pense faire une erreur quelque part: quelqu'un peut-il me dire
laquelle ?
Les images (elles sont très similaires, produites à partir de copies
d'écran dans le presse-papiers, mais néammoins différentes (même pas
la même taille).
14.jpg:
http://cjoint.com/?eioUUiwHLR
24.jpg
http://cjoint.com/?eioVUja5Zb
Mon script:
******************
import md5
import os
img_a = '14.jpg'
img_b = '24.jpg'
fa = open(img_a)
fra = fa.read()
a = md5.new(fra)
print a.digest()
print os.stat(img_a)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MCI, Shadok Gouroudoudou
Bonjour,
C'est bien d'ouvrir un nouveau md5, mais il faut l'alimenter avec le contenu du fichier.
Un exemple :
import md5 BLOCKSIZE = 1024*1024 fichier='c:velo.jpg' f = open(fichier, "rb") m = md5.new() while 1: block = f.read(BLOCKSIZE) if not block: break m.update(block) f.close()
C'est bien d'ouvrir un nouveau md5, mais il faut l'alimenter avec le
contenu du fichier.
Un exemple :
import md5
BLOCKSIZE = 1024*1024
fichier='c:\velo.jpg'
f = open(fichier, "rb")
m = md5.new()
while 1:
block = f.read(BLOCKSIZE)
if not block:
break
m.update(block)
f.close()
C'est bien d'ouvrir un nouveau md5, mais il faut l'alimenter avec le contenu du fichier.
Un exemple :
import md5 BLOCKSIZE = 1024*1024 fichier='c:velo.jpg' f = open(fichier, "rb") m = md5.new() while 1: block = f.read(BLOCKSIZE) if not block: break m.update(block) f.close()