adn Posté 19 Avril 2009 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...
Kioob Posté 19 Avril 2009 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.
adn Posté 20 Avril 2009 Auteur 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.
Kioob Posté 20 Avril 2009 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.
adn Posté 20 Avril 2009 Auteur 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 ?
captain_torche Posté 20 Avril 2009 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)
Kioob Posté 20 Avril 2009 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.
adn Posté 20 Avril 2009 Auteur 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant