adn Posté 19 Avril 2009 Partager Posté 19 Avril 2009 Bonjour, Savez-vous si il y a une limite pour la longueur de la chaine fournit à la fonction MD5 ? La doc ne dit rien sur le sujet. A la vue de ce message http://lists.nyphp.org/pipermail/talk/2006-July/018801.html il semble que non... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 19 Avril 2009 Partager Posté 19 Avril 2009 Hello, il s'agit d'un "simple" calcul mathématique, il n'y a donc pas de limite. Enfin si, dans ton cas il y a une limite au niveau de la consommation mémoire. Pour de gros volumes de données il est préférable d'utiliser l'extension hash et faire régulièrement des hash_update(). Par contre s'il s'agit d'un fichier, tu peux directement utiliser md5_file(). PS : pour te donner un ordre d'idée, c'est ce qu'utilise eDonkey pour générer "l'identifiant" de fichiers de plusieurs centaines de Mo. Lien vers le commentaire Partager sur d’autres sites More sharing options...
adn Posté 20 Avril 2009 Auteur Partager Posté 20 Avril 2009 OK merci. C'est fou que cet algo génère toujours un indice unique même avec plusieurs centaines de Mo !! C'est vraiment une fonction très appréciable. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 20 Avril 2009 Partager Posté 20 Avril 2009 Euh non, on a jamais dit que c'était un indice unique Sinon tu aurais là un terrible algo de compression. Lien vers le commentaire Partager sur d’autres sites More sharing options...
adn Posté 20 Avril 2009 Auteur Partager Posté 20 Avril 2009 J'utilise cet algo pour dédoublonner des pages pour éviter de générer deux pages identiques. Je veux tester que j'ai affaire à un résultat unique. Est-ce que pour une chaine donnée, même très grosse il génère toujours un même résultat ? Ce que tu dis c'est que potentiellement il peut me générer un même indice pour deux chaines différentes. Ça, dans mon cas c'est pas trop grave. As-tu une meilleure méthode que md5 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 20 Avril 2009 Partager Posté 20 Avril 2009 Disons que c'est un indice suffisamment complexe pour génrérer beaucoup de combinaisons. Mais comme il a un nombre fini de caractères, il existe fatalement un risque de collision (deux contenus différents générant le même md5) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 20 Avril 2009 Partager Posté 20 Avril 2009 Pour une même chaine, il retournera toujours le même résultat. C'est sûr et certain. C'est vraiment un calcul mathématique, tu peux le voir comme une addition : l'algo "additionne" tous les caractères de la chaine. Il y a donc plusieurs combinaisons qui donnent le même résultat (même si la probabilité avec md5 est faible). Pour ton usage, je pense que md5 suffit largement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
adn Posté 20 Avril 2009 Auteur Partager Posté 20 Avril 2009 Merci à tous les deux pour vos réponses. Je calcule mon indice sur une chaine raisonnable et les doublons sur des combinaisons différentes seront faibles je pense. L'important étant de toute façon de supprimer les doublons. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant