Génération de mots - C++ - Programmation
Marsh Posté le 15-09-2010 à 16:11:38
Je ne saisis pas très bien pourquoi tu ne veux pas faire 5 boucles for imbriquées? Problème de lisibilité? Au pire tu peux le simuler avec une boucle while, et en le codant correctement, rendre tout ça très lisible...
Sinon je pense que la méthode utilisant une génération de mot de passe est une mauvaise idée car:
- Tu n'es pas sur de parcourir toutes les possibilités
- Je ne sais pas comment elle marche mais elle risque d'être beaucoup plus lente que les 5 for.
Je n'ai pas vraiment d'autre idées sinon...
Marsh Posté le 15-09-2010 à 16:22:37
h3bus a écrit : Je ne saisis pas très bien pourquoi tu ne veux pas faire 5 boucles for imbriquées? Problème de lisibilité? Au pire tu peux le simuler avec une boucle while, et en le codant correctement, rendre tout ça très lisible... |
parce que dès que je dépasse 3 boucles, je pense qu'il y a un problème dans l'implémentation
h3bus a écrit : |
pour la méthode, je pensais l'appeler de la classe qui tente chaque clé sur l'algo AES. je suis sûr de tester toutes les clés mais effectivement, ça va probablement être plus lent
Marsh Posté le 15-09-2010 à 16:25:43
oliparcol a écrit : |
Et le while, en implémentant une sorte de propagation de retenue sur ta chaine de caractère et en ajoutant 1 au premier caractère?
Marsh Posté le 15-09-2010 à 16:39:23
ouai je vais surement faire un truc de ce genre...
le problème c'est que niveau modularité, c'est pas tip top, je vais voir si ya pas moyen de coder en dur le nombre de caractères du mot de passe...
Marsh Posté le 15-09-2010 à 16:55:55
Juste pour compléter ma pensée, voilà à quoi je pensais:
Code :
|
Tu dois pouvoir rendre un truc comme ça aussi modulaire que la génération basée sur AES...
Marsh Posté le 15-09-2010 à 23:23:57
Si ta fonction est inline, ça te pose aucun problème en terme de performance.
Le code d'h3bus compte en little-endian mais au delà des char*, c'est correct (à toi de voir si tes bornes sont < ou <=).
Marsh Posté le 15-09-2010 à 23:26:46
Et si tu veux t'amuser parce que ton mot de passe a un longueur statique tu déroules la boucle en template et/ou tes bornes sont statiques et tu mets ça en param template.
Marsh Posté le 15-09-2010 à 15:49:08
Bonjour,
Je dois générer tous les mots de la forme XXXXX où X est un caractère ascii compris entre 33 et 126. La solution la plus simple est de faire 5 for imbriqués (oh yeah) et de mettre le tout dans un vecteur (je m'en fou un peu de la mémoire utilisée par mon programme). Bon par contre, cinq for imbriqués c'est pas tip top.
Donc la deuxième solution à laquelle j'ai pensée c'est de faire une méthode du type
string generationMotDePasse.generer(string ancien_mot_de_passe)
où le mot de passe renvoyé est le suivant après ancien_mot_de_passe. Donc l'avantage c'est que c'est plus élégant mais par contre, on perd en vitesse car on a un appel de fonction (je dois créer un programme qui permet de casser un code AES en bruteforce).
Quelqu'un a-t-il d'autres idées ?
merci,
oliparcol