2010-05-10 11 views
4

Très bien, j'ai deux fichiers. Ils sont les mêmes EXACT.Pourquoi la même entrée renvoie-t-elle deux hachages MD5 différents?

Le premier fichier est: http://iadsonline.com/servconfig.php

Et le second fichier est: http://xzerox.info/servconfig.php

Cependant, quand j'utilise md5_file() pour obtenir leur MD5, Ils reviennent deux différents MD5 de. Le premier renvoie cc7819055cde3194bb3b136bad5cf58d, ce qui est incorrect, et le second renvoie 96a0cec80eb773687ca28840ecc67ca1, ce qui est correct.

Le fichier est tout simplement un  

Pour vérifier, je l'ai utilisé ce code:

$contents = file_get_contents($URL); 
echo htmlentities($contents); 

Et ils reviennent tous deux  

Alors, pourquoi est-il les Hashage différemment?

+2

La réponse évidente est qu'ils sont différents. Voir la réponse de nouvelle ligne. –

Répondre

7

La seconde se termine par une nouvelle ligne, la première ne l'est pas.

3

Essayer avec curl, je vois le premier est  sans un saut de ligne après, le second est  avec un saut de ligne après. Alors bien sûr, ils vont hachage différemment. Et en effet, même à la ligne de commande (invite bash):

$ md5 sc.dat 
MD5 (sc.dat) = cc7819055cde3194bb3b136bad5cf58d 
$ md5 zz.dat 
MD5 (zz.dat) = 96a0cec80eb773687ca28840ecc67ca1 
+1

Vous pouvez également exécuter 'echo"   "| md5sum' contre 'echo -n"   "| md5sum' –

0

Pourriez-vous avoir des espaces dans l'un de ces fichiers? Ouvrez-les dans un éditeur de texte et affichez tous les caractères.

Vous pouvez également exécuter quelque chose comme ça

echo str_replace(array("\n", "\t", "\r"), '[I AM HIDING!]', file_get_contents($URL)); 

Si vous voyez [je me cache!], vous saurez quoi faire :)

0

cela aussi est arrivé avec moi. Je mets le même encodage (utf-8 sans nomenclature) dans tous les fichiers qui stockent et récupèrent les chaînes hachées :) maintenant md5() donne les mêmes résultats :)