cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
5 juil. 2009 à 00:13
pianist1
Messages postés1Date d'inscriptionmardi 23 décembre 2008StatutMembreDernière intervention 7 août 2009
-
7 août 2009 à 15:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
pianist1
Messages postés1Date d'inscriptionmardi 23 décembre 2008StatutMembreDernière intervention 7 août 2009 7 août 2009 à 15:03
Bonjour, j'aimerais avoir un renseignement j'ai mit pour le fun le code source dans " codeblock" puis j'ai compiler mais je ne trouve pas ce qui a été compiler.
Merci d'avance.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 20 juil. 2009 à 16:34
Il faut compiler et exécuter.
cs_Armanol
Messages postés5Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention 9 mai 2011 20 juil. 2009 à 10:36
Comment on l'installe ???
Aidez moi svp
oh1234
Messages postés15Date d'inscriptionmercredi 28 janvier 2009StatutMembreDernière intervention27 mars 2018 10 juil. 2009 à 19:08
Merci pour tous ces remarques et tous ces conseils car j'en suis besoin
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 10 juil. 2009 à 11:51
Bien vu BruNews, Je n'avais pas fait attention a cette limite :o)
De toutes facons, il faut relativiser un peu : Meme en testant 1.000.000.000 cles/secondes (ce qui est beaucoup) il faudrait presque 50 ans pour essayer tous les mots de passes a 9 caracteres :o)
On pourrait facilement faire reculer cette limite avec un appel recurcif sans trop d'impact sur les performances (un appel de fonction tous les 49 ans, 57 jours et des brouettes ne vas pas ralentir notablement le programme :op ) mais je ne suis pas sur que ce soit le vrai probleme...
Bien qu'inutilisables dans la vraie vie, ces algos sont toujours assez interessants a optimiser, juste pour le fun.
Oh1234: A notre epoque, avec les smartcards et autres solutions a base de "keyfile" sur cle USB, un mot de passe peut faire bien plus que 107 caracteres (sans parler des solutions a base de "phrases de hash", mais pour craquer ces dernieres une attaque brute force sur la phrase n'est pas le moyen le plus efficace).
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 juil. 2009 à 22:40
Ah ben voila l'explication manquante, j est longueur du mot de passe.
Pour autant, avec un password de 12:
pow(105, 12) = 1795856326022129150390625
UINT64 max = 18446744073709551615
Cette méthode limite le password à 9 char maxi en bossant avec du UINT64, faudra pas le perdre de vue.
oh1234
Messages postés15Date d'inscriptionmercredi 28 janvier 2009StatutMembreDernière intervention27 mars 2018 9 juil. 2009 à 21:23
A ton avis mr.BruNew est-ce qu'il ya un motdepasse qui contient 105 charachtère a mon avis c'est toi mon vieux qui dit n'importe quoi
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 juil. 2009 à 17:53
Quelqu'un a vérifié les résultats ???
on a:
len = strlen(rotation);
donc possible 105 ici.
dans la boucle:
end = (long int) pow(len, j);
donc possible:
end = pow(105, 105);
qui donne 1.6783263083479555842921809575671e+212
ça rentrerait sur entier 64 bits ???
A moins de n'avoir rien compris à l'histoire, ça me semble du grand nimporte quoi.
oh1234
Messages postés15Date d'inscriptionmercredi 28 janvier 2009StatutMembreDernière intervention27 mars 2018 6 juil. 2009 à 17:11
Merci Eric
oh1234
Messages postés15Date d'inscriptionmercredi 28 janvier 2009StatutMembreDernière intervention27 mars 2018 6 juil. 2009 à 17:10
Merci Pour les conseils LeFauve42
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 6 juil. 2009 à 13:13
Salut,
Il y a quelques bonnes idees, mais ca reste tres facilement ameliorable.
C'est dommage d'utiliser des % et des divisions (tres lentes) dans ta boucle.
Si ton jeu de caracteres a essayer avait la taille d'une puissance de 2 (par exemple 64), tu pourrais t'en sortir avec des >> et des & bien plus rapides.
Petit detail: Pourquoi dimensionner ton rotation a 200 ?
tu pourrais utiliser rotation[]. De meme, tu peux gagner un peu de temps en remplacant le strlen() par sizeof(rotation)/sizeof(char) (qui sera calcule a la compilation une fois pour toutes).
Tu peux aussi eviter de faire un pow (tres couteux) a chaque iteration:
Tu mets:
end=pow(len,j-1);
juste avant la boucle, et tu reemplaces ton ancien appel par:
end *= j;
Du coup, tu n'as plus qu'un seul appel a pow par execution et une multiplication par iteration (au lieu d'un appel a pow par iteration).
Voila, amuse toi-bien a optimiser tout ca !
Eric
oh1234
Messages postés15Date d'inscriptionmercredi 28 janvier 2009StatutMembreDernière intervention27 mars 2018 5 juil. 2009 à 00:27
Oui tu as raison
oh1234
Messages postés15Date d'inscriptionmercredi 28 janvier 2009StatutMembreDernière intervention27 mars 2018 5 juil. 2009 à 00:25
Oui l'algorithme seul ne sert a rien mais ce morceau de code est utile pour les gens qui veulent des programmes de décryptage par forcebrute pour par exemple : MD5,casser le mot de passe zip,rar,etc..
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 5 juil. 2009 à 00:18
pour ajouter, le seul intérêt éventuel aurait été d'épargner à l'utilisateur la tâche du test des mots de passe, autrement dit un code qui effectue lui-même la vérification sur le fichier ciblé (y a moyen de revenir à une durée de l'ordre de l'année alors probablement).
Ceci rendrait ton code plus intéressant je pense, car en l'état, force est de constater qu'il ne sert à rien.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 5 juil. 2009 à 00:13
"il est rapide"... t'as essayé de trouver un mot de passe, comme ça, juste pour voir? A raison de 5 sec. par tentative (faut bien les tester les mots générés), pour un mot de passe de 5 caractères (ce qui est peu), ça prendrait de l'ordre du millier d'années... alors bon pour la rapidité on repassera je pense.
D'autre part, je ne vois pas l'utilité de ce code puisqu'il se contente d'énumérer les combinaisons alpha-numériques possibles, ce qu'on peut très bien faire directement à la main.
7 août 2009 à 15:03
Merci d'avance.
20 juil. 2009 à 16:34
20 juil. 2009 à 10:36
Aidez moi svp
10 juil. 2009 à 19:08
10 juil. 2009 à 11:51
De toutes facons, il faut relativiser un peu : Meme en testant 1.000.000.000 cles/secondes (ce qui est beaucoup) il faudrait presque 50 ans pour essayer tous les mots de passes a 9 caracteres :o)
On pourrait facilement faire reculer cette limite avec un appel recurcif sans trop d'impact sur les performances (un appel de fonction tous les 49 ans, 57 jours et des brouettes ne vas pas ralentir notablement le programme :op ) mais je ne suis pas sur que ce soit le vrai probleme...
Bien qu'inutilisables dans la vraie vie, ces algos sont toujours assez interessants a optimiser, juste pour le fun.
Oh1234: A notre epoque, avec les smartcards et autres solutions a base de "keyfile" sur cle USB, un mot de passe peut faire bien plus que 107 caracteres (sans parler des solutions a base de "phrases de hash", mais pour craquer ces dernieres une attaque brute force sur la phrase n'est pas le moyen le plus efficace).
9 juil. 2009 à 22:40
Pour autant, avec un password de 12:
pow(105, 12) = 1795856326022129150390625
UINT64 max = 18446744073709551615
Cette méthode limite le password à 9 char maxi en bossant avec du UINT64, faudra pas le perdre de vue.
9 juil. 2009 à 21:23
9 juil. 2009 à 17:53
on a:
len = strlen(rotation);
donc possible 105 ici.
dans la boucle:
end = (long int) pow(len, j);
donc possible:
end = pow(105, 105);
qui donne 1.6783263083479555842921809575671e+212
ça rentrerait sur entier 64 bits ???
A moins de n'avoir rien compris à l'histoire, ça me semble du grand nimporte quoi.
6 juil. 2009 à 17:11
6 juil. 2009 à 17:10
6 juil. 2009 à 13:13
Il y a quelques bonnes idees, mais ca reste tres facilement ameliorable.
C'est dommage d'utiliser des % et des divisions (tres lentes) dans ta boucle.
Si ton jeu de caracteres a essayer avait la taille d'une puissance de 2 (par exemple 64), tu pourrais t'en sortir avec des >> et des & bien plus rapides.
Petit detail: Pourquoi dimensionner ton rotation a 200 ?
tu pourrais utiliser rotation[]. De meme, tu peux gagner un peu de temps en remplacant le strlen() par sizeof(rotation)/sizeof(char) (qui sera calcule a la compilation une fois pour toutes).
Tu peux aussi eviter de faire un pow (tres couteux) a chaque iteration:
Tu mets:
end=pow(len,j-1);
juste avant la boucle, et tu reemplaces ton ancien appel par:
end *= j;
Du coup, tu n'as plus qu'un seul appel a pow par execution et une multiplication par iteration (au lieu d'un appel a pow par iteration).
Voila, amuse toi-bien a optimiser tout ca !
Eric
5 juil. 2009 à 00:27
5 juil. 2009 à 00:25
5 juil. 2009 à 00:18
Ceci rendrait ton code plus intéressant je pense, car en l'état, force est de constater qu'il ne sert à rien.
5 juil. 2009 à 00:13
D'autre part, je ne vois pas l'utilité de ce code puisqu'il se contente d'énumérer les combinaisons alpha-numériques possibles, ce qu'on peut très bien faire directement à la main.