MD5 RELATION RECIPROQUE

richie3366 Messages postés 14 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 23 avril 2007 - 23 avril 2007 à 13:35
jdalton42 Messages postés 200 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 19 août 2009 - 29 déc. 2010 à 22:38
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/42416-md5-relation-reciproque

jdalton42 Messages postés 200 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 19 août 2009
29 déc. 2010 à 22:38
hum moi il m'a fallut 6541 secondes (un microTime() comparé à un autre à la fin du script) pour un mot de passe de 6 chiffres ! il y a bien plus rapide !
jimcrysis Messages postés 3 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 31 janvier 2011
12 déc. 2010 à 16:10
oulalala non désolé.

1.936 seconde pour trouvé "test", et pour un mot de plus de 4 caractère, je ne sais pas il est en train de chercher ;)

Autant pour moi.
jimcrysis Messages postés 3 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 31 janvier 2011
12 déc. 2010 à 16:01
+1 Renfield

J'ai testé, il me trouve bien mon mdp a 4 caractère, mais le champs Md5 Décrypté reste vide, quelque soit la source de md5.

Quelqu'un a une idée du pourquoi du comment ? :D

Merci
cavalier2400 Messages postés 120 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 1 décembre 2010 1
11 août 2010 à 19:23
Le codage est claire du genre consonne voyelle... comme le bon vieux jeux bien connu, mais en réinventa pas enigma pour autant... tandis que l'autre partie ce sont les chiffres, et si on veut plus compliquer, alors c'est l'un dans l'autre, les tables hash et avec un bon metaxa on y arrivera.(merci pour ce code qui ouvre la porte à toute sorte modification, et merci pour ces commentaires... je débute en PHP je découvre md5 ainsi que les SHA... que d'autres languages n'offrent pas).
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 janv. 2010 à 09:49
T'aider à ?
écrire convenablement ?
lulu77300 Messages postés 1 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 11 janvier 2010
11 janv. 2010 à 20:46
slt esque qlq aurai msn pour m'aider svp ... sa serai vraimen sympa
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
3 nov. 2008 à 13:12
Arto_8000, Je ne comprends pas bien pourquoi 4.76*10^28. J'aurais plutôt envisagé 2^128 (3.40e+38, ce qui est pire), puisque si l'on prend un résultat codé sur 128 bits, il ne peut y avoir que 2^128 valeur comprise entre 0 et (2^128)-1. Mais bon celà ne change rien au fait que celà demande un temps de calcul ennorme pour finaliser la totalité des réponses.

********************************************
Voici un extrait d'un autre article:
http://www.unixgarden.com/index.php/securite/les-fonctions-de-hachage-sortiraient-elles-de-lombre


"
-Résistance à la première préimage : il doit être impossible pour un adversaire de trouver une entrée x telle que h(x) = y pour un y fixé à l'avance.

-Résistance à la seconde préimage : étant donné une entrée x fixée à l'avance et son haché y h(x), il doit être impossible pour un adversaire de trouver une seconde entrée x' telle que h(x') y avec x ? x'.

-Résistance aux collisions : il doit être impossible pour un adversaire de trouver deux valeurs arbitraires x ? x' telles que h(x) = h(x').

Par le terme « impossible », on définit implicitement la puissance de calcul dont dispose un adversaire (et l'on admet donc qu'elle est bornée).
"

"Cryptographiquement parlant, MD5 est désormais considéré comme étant cassé, puisque des collisions ont été exhibées ; il est ainsi fortement recommandé d'éviter son utilisation dans le cadre d'une application critique dans le futur. Cependant, il faut noter que le glas ne sonnera définitivement pour MD5 que dès le moment où une attaque pratique par seconde préimage sera proposée, ce qui laisse un certain temps à disposition (néanmoins compté) pour organiser la transition."

*******************************************

Pour conclure, le MD5 n'est pas complètement mort, mais son temps est compté, dès lors, il convient de commencer dès maintenant à migrer vers d'autre fonctions de hashage plus récentes.

MD5 est mort, vive MD5
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 nov. 2008 à 20:02
arto_8000, le groupe de chinois n'avait pas trouve la solution en se levant du lit un dimanche matin, un lendemain de cuite... ils ont aussi fourni un algo qui optimise la recherche de collisions.
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
2 nov. 2008 à 19:48
Masternico -> Reste que pour que l'algorythme soit cassé, il faut être capable de prédire comment les collisions se forment, ce qui n'a pas été fait jusqu'à date. En théorie SHA-256 est tout aussi vulnérable que MD5 puisque l'encryption est aussi basé sur une sortie à nombre fixe de caractère, simplement que SHA-256 à un nombre plus grand de caractère de sortie, ce qui le rend théoriquement un peu plus sécuritaire.

Aussi dans ton temps pour trouver la solution tu n'inclus pas le temps de générer une telle rainbow table qui se calcule en siècle, si ce n'est pas en millénaire. Pour te donner une idée, pour y arriver tu dois pré-calculer 4.76 * 10^28 hash. Même avec le calcul distribué, cela prendrait des centaines d'années. Ce qui laisse amplement le temps de créer un nouvel algorithme avant qu'une telle rainbow table soit généré.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 nov. 2008 à 10:34
pour eviter ca, on peut utiliser un salt.

(parce-que ces attaques par rainbow tables sont aussi possibles pour sha1)
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
2 nov. 2008 à 09:53
Alors... je rectifie mon commentaire:
Ce n'est pas au japon, mais en chine et c'était en 2004. Mais l'info reste valable.
Par contre, pour abonder dans le sens de coucou747, il ne sagit que de collisions et non pas de 'reverse'.

Les empreintes MD5 sont codés sur 128 bits (16 caractères alpha-décimal). Ce qui fait que pour toutes séquences de caractères de plus de 128 bits, il en existe obligatoirement une autre qui produise la même empreinte, d'où collision.

Disons donc, en théorie, que tant que le mot de passe ne contient pas plus de 16 caratères, l'empreinte ne peut pas être simulée. Par contre, elle peut être facilement cassée par bruteforce grace aux sites 'rainbow table' ('Fgpyyih804423' prend 160 sencondes).

Donc, perso je pense qu'il convient de ne plus utiliser MD5 mais plustôt les versions de hash plus récentes comme SHA-256

Pour plus d'info:
http://fr.wikipedia.org/wiki/MD5#Attaques
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 nov. 2008 à 00:39
euh... non, md5 n'est pas sensible au second antecedant...
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
1 nov. 2008 à 21:25
un étudiant au japon l'aurait cassé... si je retrouve l'article, je le posterais ici
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 nov. 2008 à 18:21
des collisions ont ete trouvees, mais md5 n'est pas encore sensible au second antecedant.
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
1 nov. 2008 à 17:14
Masternico -> D'où est-ce que tu sors ça ?
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
31 oct. 2008 à 16:46
De toutes façons, l'algo du md5 à été craqué il y à qques mois déjà...
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
31 oct. 2008 à 15:28
Le rapport avec la source ?

Déja ce n'est pas du cryptage mais du hachage, et cette source ne montre pas comment protéger un mot de passe, c'est plutôt l'inverse quelle montre.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 oct. 2008 à 15:15
ouais et ?
Chyokyka Messages postés 31 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 8 avril 2008
31 oct. 2008 à 14:02
Moi j'ai crypté comme ça :

<?php
if (isset($_POST['md5']))
{
if ($_POST['md5'] != null)
{
$chaine = $_POST['md5'];
$chaine = md5($chaine);
$mot = $_POST['md5'];
echo "$mot = $chaine";
}
}
?>
<form method="post" action="">
Mot à hasher :

</form>
sebastienbor Messages postés 4 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 5 octobre 2008
5 oct. 2008 à 11:08
Moi je prend plus de risque, les mot de passes de mon site sont crypté en 512bits (cf. SHA-512)
Au moins je ne prend aucun risque :)
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
20 août 2007 à 20:09
Si tu auraifait ton tri à bulle je l'aurai pas noté, car tout simplement ce code ne m'intéresse pas.

Oui je ne met pas tjs 10/10, je note en fonction du code, et la je le trouver PROPORE et intéréssant.

Je sait que le C compilé et presque aussi rapide que l'asm.
Je dit sa parceque tu reproche que le code soit lent, mais c'est normal c'est du PHP. Tu dit que PHP n'est pas fait pour ce type de programme je te demande pourquoi car le but rechercher n'était pas la vitesse.

Ensuite si coucou747 ta dit que un code a toi n'était pas propre pour un ", je ne pense pas qu'il t'ai noté 0/10.

Donc pas parceque t'es pas content d'un remarque qu'il te fait, t'es pas obligé de mettre 0 pour un bon code.

Tu dit qu'il est pas propre, ben moi je trouve que si, ta pas vu un autre code similaire codé par une autre personne parceque sinon t'aurai mis -10 si on pouvait.

Et c'est pas parceque qu'il fait une remarque de code pas propre qu'il est obligé de faire des code parfait faut arreter la.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2007 à 20:09
la metaprog C++ permet meme quelques atuces qu'en asm on ne pourrait se permettre qu'avec mathlab de plante a cote...

bon, toujours est-il que peu importe le langage, on est sur phpcs, je postes donc du php, j'ai pas choisi le langage, j'ai croise une source php mal codee, je l'ai refaite... c'est tout...

pour le coup des ", c'est juste que l'autre personne n'etait pas rigoureuse dans leur utilisation, ca se melangeait... c'est pas bien grave, et le code crade, c'etait pour son <?
Dark_Genova Messages postés 26 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 19:47
coucou747 pour une personne qui estimais qu'écrire ob_start("something") c'était un code crade car il faut écrire ob_start('something') pour être soit disant propre, je trouve justement que tes sources sont loins d'être parfaites. Mes message avait simplement pour but de te montrer qu'avant de qualifier un code crade à cause d'une broutille, on tache soit même d'être parfait. Et si tu es de bonne fois tu reconnaitras que tu as eu tort.

Ensuite Rudy3212 je crois que c'est toi qui n'a rien compris. Faire un brute force, à savoir bètement une comparaison itérative entre un ensemble de chaîne, ça peut se faire en n'importe quel langage, et par conséquent ça n'a aucun intéret en PHP, dans le sens ou PHP n'est PAS optimisé pour les instructions élémentaires. Si demain je te poste une implémentation d'un algorithme de tri à bulle ou de tri par fusion en PHP tu va bètement venir me mettre un 10 / 10 parce que c'est joli ? Si c'est le cas alors il te manque pas mal de bases en développement.

Et oui ce serait peut être plus rapide en assembleur, mais ce serait tout aussi con car le C compilé aujourd'hui est casiment aussi rapide que l'assembleur, alors que la différence de vitesse entre PHP et C est incomparable. Donc parle en connaissance de cause avant de citer des exemples que tu ne maitrises pas.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2007 à 19:10
rudy3212, j'ai du le vexer ailleur, il fait le tour de mes sources pour chercher la petite bete et mettre la note mini... il a ose mettre un truc genre code inutile car non commente, ou code crade car utilisation de global (meme si la, c'est pour optimiser :) ) et utilisation de strlen dans un for... il m'en veut, faut pas chercher plus loin
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
20 août 2007 à 19:04
Dark_Genova tu n'a rien compris.
Toute façon en C ou C++ c'est quand même trop lent, vaut mieux le faire en assembler pfff!!!

Cette source est la pour montrer comment on peut cracker un md5 en PHP.
Elle est pas faite dans le but d'etre le bruteforceur le plus rapide, on le sait le que PHP c'est plus lent que le C/C++ comme tout les language non compilé.

C'est débile de mettre la note mini pour presque la seul raison que PHP est plus lent que le C/C++
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2007 à 18:34
pour le strlen ok, pour les global, c'est ici une question d'optimisation...
Dark_Genova Messages postés 26 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 18:24
"for ($i=0;$i<strlen($alphabet);$i++)"
Utilisation du strlen() dans la condition.

Utilisation de globales.

Aucun espace entre les opérateurs, ce qui rend la lecture du code pénible et difficile.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2007 à 17:55
ou tu vous un code crade ?


ensuite, comme je l'ai dit, c'etait une correction de mauvais codes de ce genre...
Dark_Genova Messages postés 26 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 16:56
Faire un brute force en PHP à autant d'intéret que de faire un algorithme de tri en PHP : c'est à dire aucun. Un algorithme de ce type ça se fait en C ou en C++ si on veut qu'il soit optimiser en terme de rapidité (qui est au passage le critère principal dans ce type d'algorithme). J'ai du mal à comprendre comment on a pu mettre 9.5 / 10 à cette source. Je lui donne la note minimum pour manque d'intéret, mauvaise utilisation du langage PHP, et présentation du code assez crade.
AuFilDuNet Messages postés 1 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 30 avril 2007
30 avril 2007 à 09:41
Vouloir casser du md5 par brute force est un peu illusoire...

Un mot de passe alphanumérique de 8 caractères cela donne: 4^99 possibilités. Donc sauf à avoir un mot de passe qui soit un mot de vocabulaire connu...

Et les collisions MDà sont quand même pas à la portée de n'importe qui. C'est faisable c'est tout.
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
29 avril 2007 à 14:57
Resalut,
J'était en train de consulter la doc de la commance md5() sur le site php.net, et en fait, il semblerait que la commande hash('md5','mot') est 2 fois plus rapide que la commande md5('mot')...
Allez savoir pourquoi...
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
28 avril 2007 à 12:47
salut coucou, c'est bipbip, j'aime bien ton esprit la, dommage qu'il soit pas fait en C ;)

Sinon, question: quelle est la longueur des chaines que tu arrives à hasher ?
parce que la tu testes sur une longueur 3 mais je voudrais savoir sur longueur disons 8
voila @++
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
27 avril 2007 à 18:04
masternico -> Il y a GData ils ont environ 166 millions de hash ce qui est gros. C'est un mélange de dictionnaire et de rainbow table, donc c'est très complet.

http://gdataonline.com/
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
27 avril 2007 à 17:38
Je me disais bien aussi, quelqu'un avait bien du y penser...
Au fait, j'ai mis 10/10
PS:Tu connais quelques sites?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 avril 2007 à 00:06
masternico, ces sites existent...
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
27 avril 2007 à 00:03
Dans cet example très puissant de notre cher ami coucou47 (example qui vient en réaction à celui de richi3366), chaque fois que l'on veux casser du md5, il faut regénérer successivement toutes les valeurs jusqu'à tomber sur la bonne...

Mais qu'est ce qui nous empèche de laisser le script tourner indefiniment et de stocker l'ensemble des valeurs md5 dans une base de données pour ensuite rechercher quelle occurence correspond au code md5 que l'on recherche.

Ainsi, la prochaine fois que l'on veux casser du md5, une simple recherche mysql fournira un résultat très rapide quelqu'en soit la longeur... et pourquoi pas faire un site dédié au cassage md5. Une base de données gigantesque où n'importe qui pourra venir casser son md5 sans avoir à tout recommencer depuis le début.

Evidemment il faudra du temps pour créer un telle base de données, mais depuis toutes ces années que le brute force existe, le script pourait en être arrivé à des mot de passe de plusieur dizaines de caractères, non?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 avril 2007 à 19:01
la on a pris des petits password un vrai pass devrait toujours faire entre 8 et 10 lettres, et contennir des caracteres a la con () {} [] . / ' " \ ect...
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
26 avril 2007 à 18:31
Yop!
"moi que croyais que md5 était fiable ... lol"
>> Bah c'est quand même assez fiable dans le sens où le hash n'est pas censé être divulgé non plus... Ou alors avec un grain de sel...

@++

R@f
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
24 avril 2007 à 20:00
Sujet interessant Merci coucou747 pour cette petite démo :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 avril 2007 à 12:55
la methode
sha1(md5($password));
te filles les collisions du md5 et du sha1...

pour :
md5(chr(1).$password);
c'est sur, il faudrait un alphabet etendu pour parrer cette solution...
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
24 avril 2007 à 03:31
Pour éviter les doublons de collisions et reforcer un mot de passe, il y a 2 méthodes assez simples et efficaces :

1- Encrypter avec plusieurs méthodes différentes :

sha1(md5($password));

2- Rajouter un sel avec un caractère non imprimable :

md5(chr(1).$password);
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 22:06
Rudy3212 oui tu doubles les collisions
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 22:04
oui
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 avril 2007 à 22:02
Réponse à Coucou :
passer $chaine.$alphabet[$i] par reference ca marche ??

A condition de faire :
for ($i=0, $s=strlen($alphabet); $i<$s; $i++)
return testepos( &($chaine .= $alphabet[$i]) , $max);

Oui :p
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
23 avril 2007 à 21:27
Ha, et si ont fait une fonction genre.
a = 1, b=2....
Et que a chaque fois on fait.
md5(fonction(md5(

La aussi on double les collisions ?
jdalton42 Messages postés 200 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 19 août 2009
23 avril 2007 à 21:27
^^ lol j'sais pas j'sais juste me servir comme sa de la fonction md5 j'en connais pas plus dessus et sur les autres fonctions de cryptage ^^
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 21:14
md5(md5("mot"));

tu te payes le double de collisions, c'est tres mauvais
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
23 avril 2007 à 21:11
function remd5($mot)
{
$mot = md5(md5(md5(md5(md5(md5(md5($mot)))))));
return $mot;
}

Puis a chaque foit a la place de faire md5 tu fait remd5.

Mdr la tu risque pas de déhasher mdr
jdalton42 Messages postés 200 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 19 août 2009
23 avril 2007 à 21:04
ouais apres test sa a l'air bien, faut décrypter le premier md5 qui est de 32 caracteres ensuite decrypter le password ^^ t'peux meme rajouter un cryptage de tout sa en sha1 :D tes sur que sa soit sécu, j'sais pas si sa se décrypte facilement le sha1?
jdalton42 Messages postés 200 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 19 août 2009
23 avril 2007 à 21:01
tu veux que ton mot de passe crypté en md5 soit vraiment indécryptible?

tu le crypte puis tu le recrypte en md5 :D

md5(md5("mot"));

et voila :D j'ai jamais testé je dis sa ainsi pour caviar a tester ^^

c'est decryptable mais sa va durer longtemps lol
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 17:13
merci :)
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
23 avril 2007 à 17:08
Moins de 2 secondes avec les majuscules, et moins de 1 seconde juste en minuscule.

Le le code est très propre et rapide je met 10.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 avril 2007 à 15:38
oui oui, c'est le même code.

Bah je pense que $chaine.$alphabet[$i] peut passer par référence, mais j'ai pas essayé :s


En tout cas, joli code de cassage MD5.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 15:27
passer $chaine.$alphabet[$i] par reference ca marche ??

entre nous c'est le meme code autrement... a deux trois choses comme le strlen dans le for, et un while contre un for...
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 avril 2007 à 15:16
Olé, ca risque pas... j'ai oublié d'inclure le mot à vérifier :D
Rajoutez un global $teste; dans la fonction...

Je me disais bien aussi ^^
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 avril 2007 à 15:10
Version retravaillée :

function testepos(&$chaine, $max) {
static $alphabet = 'qwertyuiopasdfghjklzxcvbnm0123456789';

if ( strlen($chaine) === $max )
return ( md5($chaine) === $teste );
else
for ($i=0, $s=strlen($alphabet); $i<$s; $i++)
return testepos($chaine.$alphabet[$i], $max);
}

$max = 1;
$chaine = '';
while ( testepos($chaine, $max++) );
echo 'Chaine trouvée : '.$chaine;


Ca doit techniquement marché, mais je n'ai pas testé.
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
23 avril 2007 à 14:36
pour avoir un décodeur vraiment plus performant il faudrait coupler ce script avec un bdd ...al remplir en le laissant tourner puis aller faire des recherches direct inside :)
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
23 avril 2007 à 14:32
salut :)
excellent ce code ... moi que croyais que md5 était fiable ... lol
bon en revanche passé 5 caractères ça commence à être longuet à décoder quand même ...
comme quoi pensez à avoir des mots de passe longs ;)
@++
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 13:49
en mettant :
$alphabet='qwertyuiopasdfghjklzxcvbnm';
$alphabet.=strtoupper($alphabet).'0123456789';
a la place de
$alphabet='qwertyuiopasdfghjklzxcvbnm0123456789';

on passe a 4 secondes effectivement
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 avril 2007 à 13:46
j'ai un qwerty oui
richie3366 Messages postés 14 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 23 avril 2007
23 avril 2007 à 13:45
Par contre, les caractères majuscules n'y sont pas ... je sais que l'on peut les ajouter mais cela prendra plus de temps ...
Tu as un clavier qwerty ?
richie3366 Messages postés 14 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 23 avril 2007
23 avril 2007 à 13:35
Source plus rapide que la mienne et très efficace ... bravo ... je mets 9
Rejoignez-nous