MD5 FINDER [BASE DE HASH MD5 AVEC DICTIONNAIRE SQL]

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 11 juil. 2008 à 12:20
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 11 juil. 2008 à 17:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47295-md5-finder-base-de-hash-md5-avec-dictionnaire-sql

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
11 juil. 2008 à 17:24
Au temps pour moi... La tête ailleurs aujourd'hui...
Oui, ben justement : ça réduit d'autant plus le nombre de signatures MD5 possibles.
Merci pour la correction.
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
11 juil. 2008 à 17:10
neigedhiver -> Une petite erreur c'est glissé dans ton commentaire. Le charset d'un hash md5 c'est [0-9a-f] et non [0-9a-z], ce qui donne 16^32 possiblités et non 36^32.
hazkaal Messages postés 67 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 4 novembre 2008
11 juil. 2008 à 14:03
Bonjour,
J'en ai proposé un de livre d'or mais il a été supprimé par un amdmin car il y en a trop sur phpcs...
Je vais essayer de m'améliorer, merci pour ton commentaire =D Je sais ce que je doit travailler maintenant !
A bientôt !
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
11 juil. 2008 à 12:20
Salut,

Je suis navré, mais je vais descendre en flèche ta source... Pour plusieurs raisons que j'estime très valables et objectives.

1/ L'algorithme de hash MD5 n'est pas bijectif. En d'autres termes, un hash MD5 peut correspondre à plusieurs chaînes de caractères. Cela se démontre aisément : le nombre de chaines de caractères que l'on peut composer avec toutes sortes de caractères et de longueur non fixe est infini. Par contre, le nombre de chaines avec 26 lettres et 10 chiffres de longueur 32 est fini, et vaut 36^32 (36 à la puissance 32). Un dictionnaire, s'il se veut "complet", ne pourra jamais référencer toutes les chaines avec leurs hashs.

2/ Ta requête MySQL pour chercher le hash manque cruellement d'optimisation... Au lieu de boucler sur TOUS les résultat, utilise la clause WHERE. Elle sert à ça, c'est pourtant élémentaire en SQL.

3/ Il y a des erreurs dans les echo : tu ne manipules pas correctement les guillemets simples, ton code affichera des erreurs et plantera lamentablement

4/ Il y a beaucoup d'erreurs de conception, mais c'est une autre histoire...

Le premier point à lui tout seul suffit à rendre ta source inutile. Le deuxième la rend abominablement peu performante. Le troisième la rend inutilisable. Et le quatrième montre que tu devrais te concentrer sur les bonnes pratiques de développement, au lieu de faire des sources inutiles, pas performantes et inutilisables.

Je suis vraiment navré, et le fait que tu sois débutant n'excuse pas, selon moi, certains points vraiment trop importants. Si tu avais proposé un livre d'or, un petit système de news, je n'aurais pas réagit de la même manière. Mais ce genre de source, c'est, pour moi, de la pollution.
Afin de progresser, puisque tu débutes en PHP / MySQL, je t'invite à lire, lire, et lire. Lire des livres sur PHP (version 5 tant qu'à faire, Orienté Objet si possible), sur MySQL, sur les bonnes pratiques de développement (si tu souhaites progresser réellement), lire les autres sources présentes sur ce site (avec les commentaires), éventuellement des tutos (mais bon nombre sont obsolètes, de piètre qualité, mal écrits...).
Rejoignez-nous