Annonce

Réduire
Aucune annonce.

Générateur de Wordlist

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Générateur de Wordlist

    Bon j'ai hésité avant de créer un nouveau topic... Mais bon je me suis dit qu'il ne valait mieux pas tout mélanger
    Donc voici un générateur de Wordlist relativement complet.
    Il reste tout de même quelques améliorations à faire (j'ai tout mis dans le readme)
    Voici le lien pour download le programme : http://files.getwebb.org/view-cre638pj.html
    il a été compilé sous Windows, le code se trouve dans le readme.txt, il est portable.

    Ça c'était pour ceux qui n'ont pas d'IDE ou de compilateur c.
    Sinon pour les autres :

    Code:
    //H4CK_TH3_W0RD5 Beta by Lastwissh
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    char *genereclef(int longueur, char * charset);
    
    int main (int argc, char *argv[])
    {
    
      int choix_type = 0, longeur_clef = 0, longeur_min = 0, longeur_max = 0;
      unsigned long compteur = 0 , nbr_de_clefs = 0;
      char nom_fichier[100] = {'0'};
      char* charset;
    
          printf("H4CK_TH3_W0RD5 Beta by Lastwissh");
          //////////////MENU///////////////
    
          printf("\n\n Quel type de clef souhaitez-vous generer ?\n\n");
    
          printf("Tapez [1]  puis [Entrer] pour : MAJ + NUM (Type Hexadecimale)\n");
          printf("Tapez [2]  puis [Entrer] pour : MIN + NUM (Type Hexadecimale)\n\n");
          printf("Tapez [3]  puis [Entrer] pour : NUM\n");
          printf("Tapez [4]  puis [Entrer] pour : NUM + Espace\n\n");
          printf("Tapez [5]  puis [Entrer] pour : 14 Symboles\n");
          printf("Tapez [6]  puis [Entrer] pour : 14 Symboles + Espace\n");
          printf("Tapez [7]  puis [Entrer] pour : Tout les symboles\n");
          printf("Tapez [8]  puis [Entrer] pour : Tout les symboles + Espace\n\n");
          printf("Tapez [9]  puis [Entrer] pour : Alphabet MAJ\n");
          printf("Tapez [10] puis [Entrer] pour : Alphabet MAJ + Espace\n");
          printf("Tapez [11] puis [Entrer] pour : Alphabet MAJ + NUM\n");
          printf("Tapez [12] puis [Entrer] pour : Alphabet MAJ + NUM + Espace\n");
          printf("Tapez [13] puis [Entrer] pour : Alphabet MAJ + 14 Symboles\n");
          printf("Tapez [14] puis [Entrer] pour : Alphabet MAJ + 14 Symboles + Espace\n");
          printf("Tapez [15] puis [Entrer] pour : Alphabet MAJ + tout les Symboles\n");
          printf("Tapez [16] puis [Entrer] pour : Alphabet MAJ + tout les Symboles + Espace\n");
          printf("Tapez [17] puis [Entrer] pour : Alphabet MAJ + NUM + 14 Symboles\n");
          printf("Tapez [18] puis [Entrer] pour : Alphabet MAJ + NUM + 14 Symboles + Espace\n");
          printf("Tapez [19] puis [Entrer] pour : Alphabet MAJ + NUM + tout les Symboles\n");
          printf("Tapez [20] puis [Entrer] pour : Alphabet MAJ + NUM + tout les Symboles + Espace\n\n");
          printf("Tapez [21] puis [Entrer] pour : Alphabet MIN\n");
          printf("Tapez [22] puis [Entrer] pour : Alphabet MIN + Espace\n");
          printf("Tapez [23] puis [Entrer] pour : Alphabet MIN + NUM\n");
          printf("Tapez [24] puis [Entrer] pour : Alphabet MIN + NUM + Espace\n");
          printf("Tapez [25] puis [Entrer] pour : Alphabet MIN + 14 Symboles\n");
          printf("Tapez [26] puis [Entrer] pour : Alphabet MIN + 14 Symboles + Espace\n");
          printf("Tapez [27] puis [Entrer] pour : Alphabet MIN + Tout les Symboles\n");
          printf("Tapez [28] puis [Entrer] pour : Alphabet MIN + Tout les Symboles + Espace\n");
          printf("Tapez [29] puis [Entrer] pour : Alphabet MIN + NUM + 14 Symboles\n");
          printf("Tapez [30] puis [Entrer] pour : Alphabet MIN + NUM + 14 Symboles + Espace\n");
          printf("Tapez [31] puis [Entrer] pour : Alphabet MIN + NUM + Tout les symboles\n");
          printf("Tapez [32] puis [Entrer] pour : Alphabet MIN + NUM + Tout les Symboles + Espace\n\n");
          printf("Tapez [33] puis [Entrer] pour : Alphabet MIN + MAJ\n");
          printf("Tapez [34] puis [Entrer] pour : Alphabet MIN + MAJ + Espace\n");
          printf("Tapez [35] puis [Entrer] pour : Alphabet MIN + MAJ + NUM\n");
          printf("Tapez [36] puis [Entrer] pour : Alphabet MIN + MAJ + NUM + Espace\n");
          printf("Tapez [37] puis [Entrer] pour : Alphabet MIN + MAJ + NUM + 14 Symboles\n");
          printf("Tapez [38] puis [Entrer] pour : Alphabet MIN + MAJ + NUM + 14 Symboles + Espace\n");
          printf("Tapez [39] puis [Entrer] pour : Alphabet MIN + MAJ + NUM + Tout les Symboles\n");
          printf("Tapez [40] puis [Entrer] pour : Alphabet MIN + MAJ + NUM + Tout les Symboles + Espace\n");
          printf("\n : ");
          scanf("%d", &choix_type);
          printf("\n\nCombien de clefs souhaitez-vous generer ?\n");
          printf("\n : ");
          scanf("%ld", &nbr_de_clefs);
          printf("\n\nLongeur de clefs minimum\n");
          printf("\n : ");
          scanf("%d", &longeur_min);
          printf("\n\nLongeur de clefs maximum\n");
          printf("\n : ");
          scanf("%d", &longeur_max);
          printf("\n\nVeuillez nommer le fichier de sortie\n");
          printf("\n : ");
          scanf("%s", nom_fichier);
    
          srand(time(NULL));
    
          FILE* fichier = NULL;
          strcat(nom_fichier,".txt");
          fichier = fopen(nom_fichier, "w");
    
    if(fichier != NULL)
    {
    
    
          printf("\n\n GENERATION DE LA WORDLIST EN COURS\n");
          printf(" ...");
    
    
      switch(choix_type)
             {
         case 1:
                 charset = "0123456789ABCDEF";
    
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
    
    
                                             compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
        case 2:
                 charset = "0123456789abcdef";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
    
                                              free(clef);
    
                                       }
    
                                  printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 3:
                 charset = "0123456789";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 4:
                 charset = "00123456789 ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 5:
                 charset = "[email protected]#$%^&*()-_+=";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 6:
                 charset = "[email protected]#$%^&*()-_+= ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 7:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 8:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 9:
                 charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 10:
                 charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 11:
                 charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 12:
                 charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 13:
                 charset = "[email protected]#$%^&*()-_+=";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 14:
                 charset = "[email protected]#$%^&*()-_+= ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 15:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 16:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 17:
                 charset = "[email protected]#$%^&*()-_+=";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 18:
                 charset = "[email protected]#$%^&*()-_+= ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 19:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 20:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 21:
                 charset = "abcdefghijklmnopqrstuvwxyz";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 22:
                 charset = "abcdefghijklmnopqrstuvwxyz ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 23:
                 charset = "abcdefghijklmnopqrstuvwxyz0123456789";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 24:
                 charset = "abcdefghijklmnopqrstuvwxyz0123456789 ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 25:
                 charset = "[email protected]#$%^&*()-_+=";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 26:
                 charset = "[email protected]#$%^&*()-_+= ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 27:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 28:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 29:
                 charset = "[email protected]#$%^&*()-_+=";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 30:
                 charset = "[email protected]#$%^&*()-_+= ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 31:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 32:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 33:
                 charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 34:
                 charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 35:
                 charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 36:
                 charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 37:
                 charset = "[email protected]#$%^&*()-_+=";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 38:
                 charset = "[email protected]#$%^&*()-_+= ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 39:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
         case 40:
                 charset = "[email protected]#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ";
    
                 while(compteur != nbr_de_clefs)
                                       {
    
                                    longeur_clef = (rand() % (longeur_max - longeur_min + 1)) + longeur_min;
    
                                         char *clef = genereclef(longeur_clef, charset);
    
                                            compteur++;
    
    
                                                 fputs(clef , fichier);
    
    
                                              free(clef);
    
                                       }
    
                                 printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                 break;
        default :
    
                     printf("\n\n\n\n                                                 ERREUR DE SAISI !\n\n\n\n");
                 return 0;
                 break;
                }
    
    
                fclose(fichier);
    
    }
    
    else
    {
        printf("Impossible d'ouvrir/creer le fichier %s", nom_fichier);
    
    }
    
    
    
    
    return 0;
    
    
    }
    
    
    //////////FONCTION/////////////////////////////////////////////
                                                                 //
    char *genereclef(int longueur, char *charset)                //
                                                                 //
    {                                                            //
                                                                 //
        char *clef;                                              //
        int i;                                                   //
        clef = (char *)malloc( (longueur+2) * sizeof(char) );    //
        for (i = 0; i< longueur; i++)                            //
        {                                                        //
          clef[i] = charset[(rand() % strlen(charset))] ;        //
        }                                                        //
        clef[i]='\n';                                            //
        clef[i+1]='\0';                                          //
        return clef;                                             //
    }                                                            //
                                                                 //
    ///////////////////////////////////////////////////////////////


    Voila Des remarques, idées je suis tout ouïe !
    Qui est le maître, le peintre ou le faussaire... ?

    ㅡ La solidité d'une chaine est égale à la solidité de son maillon le plus faible ㅡ

  • #2
    Bon après une grosse optimisation voici :

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    #define TAILLE_MAX 1000
    void genereclef(char* clef, int longueur, char const *charset);
    
    int main (int argc, char *argv[])
    {
    ////////////////////JE DECLARE MON TABLEAU DE CHAR*
        static const char *charset[41] =
        {
            "", // Case 0
            "0123456789ABCDEF",
            "0123456789abcdef",
            "0123456789",
            "00123456789 ",
            "[email protected]#$%^&*()-_+=",
            "[email protected]#$%^&*()-_+= ",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/ ",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ ",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",
            "[email protected]#$%^&*()-_+=",
            "[email protected]#$%^&*()-_+= ",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/ ",
            "[email protected]#$%^&*()-_+=",
            "[email protected]#$%^&*()-_+= ",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/ ",
            "abcdefghijklmnopqrstuvwxyz",
            "abcdefghijklmnopqrstuvwxyz ",
            "abcdefghijklmnopqrstuvwxyz0123456789",
            "abcdefghijklmnopqrstuvwxyz0123456789 ",
            "[email protected]#$%^&*()-_+=",
            "[email protected]#$%^&*()-_+= ",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/ ",
            "[email protected]#$%^&*()-_+=",
            "[email protected]#$%^&*()-_+= ",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/ ",
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",
            "[email protected]#$%^&*()-_+=",
            "[email protected]#$%^&*()-_+= ",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/",
            "[email protected]#$%^&*()-_+=~`[]{}|\\:, »‘<>,.?/ "
        };
    
        int choix_menu = 0, choix_type = 0, longueur_clef = 0, longueur_min = 0, longueur_max = 0;
        unsigned long compteur = 0 , nbr_de_clefs = 0;
        char nom_fichier[100] = {'0'};
    
        FILE *fichier1 = NULL;
        FILE *fichier2 = NULL;
        FILE *fichierOUT = NULL;
    
        char fichier_in1[100] = { '0' };
        char fichier_in2[100] = { '0' };
        char fichier_out[100] = { '0' };
        char chaine[TAILLE_MAX] = "";
    
        system("color 1f");
        printf("  H4CK_TH3_W0RD5 0.5 by Lastwissh");
        printf("\n\n (In pop programmation we trust ^_^)");
        printf("\n\n          ****MENU****\n\n");
        printf("   1. Generation de Wordlist\n\n");
        printf("   2.. Optimisation de Wordlist\n\n :");
        scanf("%d", &choix_menu);
    
        switch(choix_menu)
        {
    
        case 1:
    
            printf("\n\n Quel type de clef souhaitez-vous generer ?\n\n");
            printf(" [1]  : MAJ + NUM (Type Hexadecimale)\n");
            printf("  [2]  : MIN + NUM (Type Hexadecimale)\n\n");
            printf("   [3]  : NUM\n");
            printf("    [4]  : NUM + Espace\n\n");
            printf("    [5]  : 14 Symboles\n");
            printf("   [6]  : 14 Symboles + Espace\n");
            printf("  [7]  : Tout les symboles\n");
            printf(" [8]  : Tout les symboles + Espace\n\n");
            printf(" [9]  : Alphabet MAJ\n");
            printf("  [10] : Alphabet MAJ + Espace\n");
            printf("   [11] : Alphabet MAJ + NUM\n");
            printf("    [12] : Alphabet MAJ + NUM + Espace\n");
            printf("     [13] : Alphabet MAJ + 14 Symboles\n");
            printf("      [14] : Alphabet MAJ + 14 Symboles + Espace\n");
            printf("      [15] : Alphabet MAJ + tout les Symboles\n");
            printf("     [16] : Alphabet MAJ + tout les Symboles + Espace\n");
            printf("    [17] : Alphabet MAJ + NUM + 14 Symboles\n");
            printf("   [18] : Alphabet MAJ + NUM + 14 Symboles + Espace\n");
            printf("  [19] : Alphabet MAJ + NUM + tout les Symboles\n");
            printf(" [20] : Alphabet MAJ + NUM + tout les Symboles + Espace\n\n");
            printf(" [21] : Alphabet MIN\n");
            printf("  [22] : Alphabet MIN + Espace\n");
            printf("   [23] : Alphabet MIN + NUM\n");
            printf("    [24] : Alphabet MIN + NUM + Espace\n");
            printf("     [25] : Alphabet MIN + 14 Symboles\n");
            printf("      [26] : Alphabet MIN + 14 Symboles + Espace\n");
            printf("      [27] : Alphabet MIN + Tout les Symboles\n");
            printf("     [28] : Alphabet MIN + Tout les Symboles + Espace\n");
            printf("    [29] : Alphabet MIN + NUM + 14 Symboles\n");
            printf("   [30] : Alphabet MIN + NUM + 14 Symboles + Espace\n");
            printf("  [31] : Alphabet MIN + NUM + Tout les symboles\n");
            printf(" [32] : Alphabet MIN + NUM + Tout les Symboles + Espace\n\n");
            printf(" [33] : Alphabet MIN + MAJ\n");
            printf("  [34] : Alphabet MIN + MAJ + Espace\n");
            printf("   [35] : Alphabet MIN + MAJ + NUM\n");
            printf("    [36] : Alphabet MIN + MAJ + NUM + Espace\n");
            printf("    [37] : Alphabet MIN + MAJ + NUM + 14 Symboles\n");
            printf("   [38] : Alphabet MIN + MAJ + NUM + 14 Symboles + Espace\n");
            printf("  [39] : Alphabet MIN + MAJ + NUM + Tout les Symboles\n");
            printf(" [40] : Alphabet MIN + MAJ + NUM + Tout les Symboles + Espace\n");
            printf("\n :");
            scanf("%d", &choix_type);
    
            if(choix_type <= 40 && choix_type >= 1)
            {
    
                printf("\n\nCombien de clefs souhaitez-vous generer ?\n\n :");
                scanf("%ld", &nbr_de_clefs);
                printf("\n\nLongeur de clefs minimum\n\n :");
                scanf("%d", &longueur_min);
                printf("\n\nLongeur de clefs maximum\n\n :");
                scanf("%d", &longueur_max);
                printf("\n\nVeuillez nommer le fichier de sortie\n\n :");
                scanf("%s", nom_fichier);
    
                srand(time(NULL));
    
                FILE* fichier = NULL; // fichier = NULL
                strcat(nom_fichier,".txt");
                fichier = fopen(nom_fichier, "w");
    
                if(fichier != NULL)
                {
    
                    printf("\n\n GENERATION DE LA WORDLIST EN COURS\n");
                    printf(" ...");
    
                    char* clef = malloc(longueur_max + 2);
                    while(compteur != nbr_de_clefs)
                    {
                        longueur_clef = (rand() % (longueur_max - longueur_min + 1)) + longueur_min;
                        genereclef(clef, longueur_clef, charset[choix_type]);
                        compteur++;
                        fputs(clef , fichier);
                    }
                    free(clef);
    
                    printf("\n LES CLEFS ONT PARFAITEMENT ETE GENEREES DANS LE FICHIER : %s\n\n", nom_fichier);
    
                    fclose(fichier);
                }
    
                else
                {
                    printf("Impossible d'ouvrir/creer le fichier %s", nom_fichier);
                    exit(EXIT_FAILURE);
                }
    
                break;
    
            case 2: // Optimisation
    
                printf("\nSaisissez la premiere wordlist a fusionner(Sans l'extansion)\n   :");
                scanf("%s", fichier_in1);
                printf("\nSaisissez la deuxieme wordlist a fusionner(Sans l'extansion)\n   :");
                scanf("%s", fichier_in2);
                printf("\nVeuillez nommer le fichier de sortie   :");
                scanf("%s", fichier_out);
    
                strcat(fichier_in1, ".txt");
                strcat(fichier_in2, ".txt");
                strcat(fichier_out, ".txt");
                fichier1 = fopen(fichier_in1, "r");
                fichier2 = fopen(fichier_in2, "r");
                fichierOUT = fopen(fichier_out, "w");
    
    
                if (fichier1 != NULL && fichierOUT != NULL)
                {
    
                    while (fgets(chaine, TAILLE_MAX, fichier1))
                    {
                        fputs(chaine, fichierOUT);
                    }
    
                    fclose(fichier1);
    
                }
                else
                {
                    printf("\nFichier introuvable\n");
                }
    
                if (fichier2 != NULL && fichierOUT != NULL)
                {
    
                    while (fgets(chaine, TAILLE_MAX, fichier2))
                    {
                        fputs(chaine, fichierOUT);
                    }
    
                    fclose(fichier2);
                    fclose(fichierOUT);
                    printf("\n\nFUSION TERMINER\n\n");
    
                }
                else
                {
                    printf("\nFichier introuvable\n");
                }
    
                break; // Fin optimisation
    
            default:
                printf("\a\a\a");
                printf("\n\nErreur de saisi HIJO DE PUTA !!\n\n");
                return 0;
                break;
    
            } // fin du if choix_type
    
            else
            {
                printf("\a\a\a");
                printf("\n\nERREUR DE SAISI CONNARD\n\n");
            }
    
        } // fin du switch choix_menu
    
        return EXIT_SUCCESS;
    
    }
    
    void genereclef(char* clef, int longueur, char const *charset)
    {
        int i = 0;
        for (i = 0; i < longueur; i++)
        {
            clef[i] = charset[(rand() % strlen(charset))] ;
        }
        clef[i]='\n';
        clef[i+1]='\0';
    }

    Encore en projet d'amélioration, je vais lui apporter plusieurs modes (suppressions des doublons, création de wordlist "intelligente" etc.. )
    A noter : j'ai rajouté un mode pour fusionner deux wordlists.
    Dernière modification par Yodark, 24 décembre 2012, 16h53.
    Qui est le maître, le peintre ou le faussaire... ?

    ㅡ La solidité d'une chaine est égale à la solidité de son maillon le plus faible ㅡ

    Commentaire


    • #3
      Bonjour , j'ai essaye votre script il se trouve qu'il y a des doublant quand on choisi les numériques ?
      pour être plus claire je voulais faire un dic de numéro de 1 --> 1000 et j'ai plusieurs numéros identiques merci de l’expliqué

      Commentaire


      • #4
        Encore en projet d'amélioration, je vais lui apporter plusieurs modes (suppressions des doublons, création de wordlist "intelligente" etc.. )
        C'est pourtant précisé à la fin, et merci de venir te présenter dans la section adéquate.
        mactux †|

        Le savoir n'est réel que s'il est partagé

        Commentaire


        • #5
          @wafistos


          Oui il y a des doublons, je vais améliorer mon code et faire un mode pour ôter les doublons, c'est prévu.
          Mais bon si tu veux faire un dico de 1 à 1000 c'est très simple il n'y a cas incrémenter un variable et l'écrire dans un fichier en bouclant, d'ailleurs c'est une bonne idée pour le mode numérique.
          Là en ce moment je suis un peu occupé sur d'autres projets mais j'y reviendrais sous peu.

          Cordialement.
          Dernière modification par Yodark, 12 février 2013, 22h59.
          Qui est le maître, le peintre ou le faussaire... ?

          ㅡ La solidité d'une chaine est égale à la solidité de son maillon le plus faible ㅡ

          Commentaire


          • #6
            Merci c'est vraiment super je l'utilise régulièrement
            Dernière modification par SAKAROV, 11 juillet 2013, 23h27.

            Commentaire


            • #7
              Merci ça fait plaisir.
              Qui est le maître, le peintre ou le faussaire... ?

              ㅡ La solidité d'une chaine est égale à la solidité de son maillon le plus faible ㅡ

              Commentaire


              • #8
                @Sony: le bouton thanks sous le post à remercier est fait pour ça
                sigpic

                Cyprium Download Link

                Plus j'étudie plus j'me rends compte que je n'sais rien.

                †|

                Commentaire


                • #9
                  Salut Lastwissh,

                  J'attendais de tes nouvelles, mais comme je reste pas longtemps ce soir, je te propose une solution (réflexion) sur la suppression de doublon.

                  Code:
                  #include <stdio.h>
                  #include <stdlib.h>
                  #include <string.h>
                  
                  #define MAX 200
                  
                  int count(FILE *f); /* compte le nombre de lignes */
                  char **create(int n); /* Crée le tableau à deux dimensions */
                  FILE *open(char *name, char *mode); /* Ouverture sécuritaire du fichier */
                  int read(FILE *f, char **tab, int lines); /* Lis et ajoute les lignes dans le tableau */
                  void display(char **tab, int taille); /* Affiche le tableau */
                  void freec(char **tab, int taille); /* libération mémoire de chaque chaine */
                  int is_present(char **tab, char *chaine, int taille); /* vérifier la présence de chaine dans tab */
                  
                  int main(void)
                  {
                      FILE *fic = open("test.txt", "r");
                      int nb_line = count(fic);
                      int t;
                  
                      char **res = create(nb_line);
                  
                      t = read(fic, res, nb_line);
                  
                      display(res, t);
                  
                      freec(res, t);
                      free(res);
                  
                      return 0;
                  }
                  
                  char **create(int n)
                  {
                      char **tab = NULL;
                  
                      tab = malloc(sizeof(char *) * n);
                      if (tab == NULL)
                          exit(EXIT_FAILURE);
                  
                      return tab;
                  }
                  
                  FILE *open(char *name, char *mode)
                  {
                      FILE *file = fopen(name, mode);
                      if (file == NULL)
                      {
                          perror("");
                          exit(EXIT_FAILURE);
                      }
                  
                      return file;
                  }
                  
                  int count(FILE *f)
                  {
                      char *p = NULL;
                      char line[MAX] = {0};
                      int counter = 0;
                  
                      while ((p=fgets(line, MAX, f)) != NULL)
                          counter += 1;
                  
                      fseek(f, 0, 0);
                  
                      return counter;
                  }
                  
                  int read(FILE *f, char **tab, int lines)
                  {
                      char *p = NULL;
                      char line[MAX];
                  
                      int i, j=0;
                      for (i=0; i<lines; i++)
                      {
                          p = fgets(line, MAX, f);
                          if (p != NULL)
                          {
                              p = strchr(line, '\n');
                              if (p != NULL)
                                  *p = '\0';
                  
                              if (!is_present(tab, line, j))
                              {
                                  tab[j] = strdup(line);
                                  j += 1;
                              }
                          }
                      }
                      fclose(f);
                      return j;
                  }
                  
                  void display(char **tab, int taille)
                  {
                      int i;
                      for (i=0; i<taille; i++)
                          printf("%s\n", tab[i]);
                  }
                  
                  void freec(char **tab, int taille)
                  {
                      int i;
                      for (i=0; i<taille; i++)
                      {
                          free(tab[i]);
                      }
                  
                  }
                  
                  int is_present(char **tab, char *chaine, int taille)
                  {
                      int i, n;
                  
                      if (taille == 0)
                          return 0;
                  
                      for (i=0; i<taille; i++)
                      {
                          n = strcmp(tab[i], chaine);
                          if (n == 0)
                              return 1;
                      }
                  
                      return 0;
                  }
                  Bonne soirée...
                  Dernière modification par fred, 23 juillet 2013, 23h04.

                  Commentaire


                  • #10
                    Oui, merci

                    En fait, là je suis dessus J'avais pensé à ça pour compter le nombre de lignes :

                    Code:
                    #include <stdio.h>
                    #include <stdlib.h>
                    
                    int main(){
                    int cmpt = 0;
                    char nom_fichier[100] = {'0'}, c;
                    printf("\n\nNom fichier : ");
                    scanf("%s", nom_fichier);
                    FILE *FP;
                    FP = fopen(nom_fichier, "r+");
                    
                      if(FP == NULL){
                          printf("Erreur !");
                          return 0;
                      }
                      else {
                          while((c = fgetc(FP)) != EOF){
                                if (c == '\n') {
                                cmpt++;
                                 }
                           }
                          printf("\n\nNombre de lignes = %d\n\n", cmpt);
                       } 
                    
                    return 0;
                    }
                    Ta solution a l'air meilleure, mais j'ai lu que fgets se stoppait au premier ' '
                    Alors du coup j'ai du mal à comprendre...

                    Quoi qu'il en soit je vais étudier ton code avec attention.
                    Encore merci
                    Dernière modification par Yodark, 24 juillet 2013, 02h21.
                    Qui est le maître, le peintre ou le faussaire... ?

                    ㅡ La solidité d'une chaine est égale à la solidité de son maillon le plus faible ㅡ

                    Commentaire


                    • #11
                      Salut

                      En fait ma solution est meilleure car plus simple, mais elle n'est pas plus efficace.

                      Cependant le simple c'est souvent au dépend de l'efficacité.

                      Ma façon de faire est tout de même souhaitable, car je lis directement le nombre de lignes, alors que toi c'est caractère par caractère, ce qui obligé la détection du caractère '\n'.

                      Tu as une boucle while qui détecte la fin du fichier, comme moi en ce qui concerne fgets, donc sur le principe, toi aussi tu t'arrêtes non pas à la 1ère ligne, mais au 1er caractère avec fgetc.

                      Sinon, tu ne comptes pas me mettre tout le code juste dans le main(...) tout de même ?

                      EDIT :

                      Voici le code avec écriture sur le fichier des dictionnaires sans doublon.

                      Il n'y a rien de dur niveau algorithme, le plus chiant si je puis dire, c'est la gestion de mémoire en C qui est assez demandeuse de rigueur de code.

                      Code:
                      #include <stdio.h>
                      #include <stdlib.h>
                      #include <string.h>
                      
                      #define MAX 200
                      
                      int count(FILE *f); /* compte le nombre de lignes */
                      char **create(int n); /* Crée le tableau à deux dimensions */
                      FILE *open(char *name, char *mode); /* Ouverture sécuritaire du fichier */
                      int read(FILE *f, char **tab, int lines); /* Lis et ajoute les lignes dans le tableau */
                      void display(char **tab, int taille); /* Affiche le tableau */
                      void freec(char **tab, int taille); /* libération mémoire de chaque chaine */
                      int is_present(char **tab, char *chaine, int taille); /* vérifier la présence de chaine dans tab */
                      void write(FILE *f, char **tab, int taille);
                      
                      int main(void)
                      {
                          FILE *fic = open("test.txt", "r");
                          int nb_line = count(fic);
                          int t;
                      
                          char **res = create(nb_line);
                      
                          t = read(fic, res, nb_line);
                      
                          display(res, t);
                      
                          fic = open("test_cp.txt", "w");
                          write(fic, res, t);
                      
                          freec(res, t);
                          free(res);
                      
                          return 0;
                      }
                      
                      char **create(int n)
                      {
                          char **tab = NULL;
                      
                          tab = malloc(sizeof(char *) * n);
                          if (tab == NULL)
                              exit(EXIT_FAILURE);
                      
                          return tab;
                      }
                      
                      FILE *open(char *name, char *mode)
                      {
                          FILE *file = fopen(name, mode);
                          if (file == NULL)
                          {
                              perror("");
                              exit(EXIT_FAILURE);
                          }
                      
                          return file;
                      }
                      
                      int count(FILE *f)
                      {
                          char *p = NULL;
                          char line[MAX] = {0};
                          int counter = 0;
                      
                          while ((p=fgets(line, MAX, f)) != NULL)
                              counter += 1;
                      
                          fseek(f, 0, 0);
                      
                          return counter;
                      }
                      
                      int read(FILE *f, char **tab, int lines)
                      {
                          char *p = NULL;
                          char line[MAX];
                      
                          int i, j=0;
                          for (i=0; i<lines; i++)
                          {
                              p = fgets(line, MAX, f);
                              if (p != NULL)
                              {
                                  p = strchr(line, '\n');
                                  if (p != NULL)
                                      *p = '\0';
                      
                                  if (!is_present(tab, line, j))
                                  {
                                      tab[j] = strdup(line);
                                      if (tab[j] == NULL)
                                      {
                                          fprintf(stderr, "Error allocation");
                                          exit(EXIT_FAILURE);
                                      }
                                      else
                                         j += 1;
                                  }
                              }
                          }
                          fclose(f);
                          return j;
                      }
                      
                      void display(char **tab, int taille)
                      {
                          int i;
                          for (i=0; i<taille; i++)
                              printf("%s\n", tab[i]);
                      }
                      
                      void freec(char **tab, int taille)
                      {
                          int i;
                          for (i=0; i<taille; i++)
                          {
                              free(tab[i]);
                          }
                      
                      }
                      
                      int is_present(char **tab, char *chaine, int taille)
                      {
                          int i, n;
                      
                          if (taille == 0)
                              return 0;
                      
                          for (i=0; i<taille; i++)
                          {
                              n = strcmp(tab[i], chaine);
                              if (n == 0)
                                  return 1;
                          }
                      
                          return 0;
                      }
                      
                      void write(FILE *f, char **tab, int taille)
                      {
                          char *p = NULL;
                          int i;
                          size_t n;
                      
                          for (i=0; i<taille; i++)
                          {
                              p = strchr(tab[i], '\0');
                              if (p != NULL)
                                  *p = '\n';
                      
                              n = strlen(tab[i]);
                              fwrite(tab[i], 1, n, f);
                          }
                      
                          fclose(f);
                      }
                      Dernière modification par fred, 24 juillet 2013, 16h35.

                      Commentaire


                      • #12
                        Bon j'ai modifié mon code, j'avais une petite erreur de mémoire bien casse bonbon

                        Code:
                        #include <stdio.h>
                        #include <stdlib.h>
                        #include <string.h>
                        
                        #define MAX 200
                        
                        int count(FILE *f); /* compte le nombre de lignes */
                        char **create(int n); /* Crée le tableau à deux dimensions */
                        FILE *open(char *name, char *mode); /* Ouverture sécuritaire du fichier */
                        int read(FILE *f, char **tab, int lines); /* Lis et ajoute les lignes dans le tableau */
                        void display(char **tab, int taille); /* Affiche le tableau */
                        void freec(char **tab, int taille); /* libération mémoire de chaque chaine */
                        int is_present(char **tab, char *chaine, int taille); /* vérifier la présence de chaine dans tab */
                        void write(FILE *f, char **tab, int taille); /* écrit le tableau dans le fichier */
                        
                        int main(void)
                        {
                            FILE *fic = open("test.txt", "r");
                            int nb_line = count(fic);
                            int t;
                        
                            char **res = create(nb_line);
                        
                            t = read(fic, res, nb_line);
                        
                            display(res, t);
                        
                            fic = open("test_cp.txt", "w");
                            write(fic, res, t);
                        
                            freec(res, nb_line);
                            free(res);
                        
                            return 0;
                        }
                        
                        char **create(int n)
                        {
                            char **tab = NULL;
                            int i;
                        
                            tab = malloc(sizeof(char *) * n);
                            if (tab == NULL)
                                exit(EXIT_FAILURE);
                        
                            for (i=0; i<n; i++)
                            {
                                tab[i] = malloc(MAX);
                                if (tab[i] == NULL)
                                    exit(EXIT_FAILURE);
                            }
                        
                        
                            return tab;
                        }
                        
                        FILE *open(char *name, char *mode)
                        {
                            FILE *file = fopen(name, mode);
                            if (file == NULL)
                            {
                                perror("");
                                exit(EXIT_FAILURE);
                            }
                        
                            return file;
                        }
                        
                        int count(FILE *f)
                        {
                            char *p = NULL;
                            char line[MAX] = {0};
                            int counter = 0;
                        
                            while ((p=fgets(line, MAX, f)) != NULL)
                                counter += 1;
                        
                            fseek(f, 0, 0);
                        
                            return counter;
                        }
                        
                        int read(FILE *f, char **tab, int lines)
                        {
                            char *p = NULL;
                            char line[MAX] = {0};
                            size_t n;
                        
                            int i, j=0;
                            for (i=0; i<lines; i++)
                            {
                                p = fgets(line, MAX, f);
                                if (p != NULL)
                                {
                                    p = strchr(line, '\n');
                                    if (p != NULL)
                                        *p = '\0';
                        
                                    if (!is_present(tab, line, j))
                                    {
                                        n = strlen(line) + 1;
                                        p = memcpy(tab[j], line, n);
                                        if (p == NULL)
                                        {
                                            fprintf(stderr, "Error allocation");
                                            exit(EXIT_FAILURE);
                                        }
                                        j += 1;
                                    }
                                }
                            }
                        
                            fclose(f);
                        
                            return j;
                        }
                        
                        void display(char **tab, int taille)
                        {
                            int i;
                            for (i=0; i<taille; i++)
                                printf("%s\n", tab[i]);
                        }
                        
                        void freec(char **tab, int taille)
                        {
                            int i;
                            for (i=0; i<taille; i++)
                                if(tab[i] != NULL)
                                    free(tab[i]);
                        }
                        
                        int is_present(char **tab, char *chaine, int taille)
                        {
                            int i, n;
                        
                            if (taille == 0)
                                return 0;
                        
                            for (i=0; i<taille; i++)
                            {
                                n = strcmp(tab[i], chaine);
                                if (n == 0)
                                    return 1;
                            }
                        
                            return 0;
                        }
                        
                        void write(FILE *f, char **tab, int taille)
                        {
                            char *p = NULL;
                            int i;
                            size_t n;
                        
                            for (i=0; i<taille; i++)
                            {
                                p = strchr(tab[i], '\0');
                                if (p != NULL)
                                {
                                    *p = '\n';
                                    *(p+1) = '\0';
                                }
                        
                                n = strlen(tab[i]);
                                fwrite(tab[i], 1, n, f);
                            }
                        
                            fclose(f);
                        }

                        Commentaire


                        • #13
                          Pourrait-il exister un générateur d'e-mail avec Gmail, Yahoo, ... ?

                          Commentaire


                          • #14
                            Un générateur d'emails, que veux-tu dire? Quel serait son intérêt ?

                            Commentaire


                            • #15
                              Envoyé par fred Voir le message
                              Quel serait son intérêt ?
                              Pour les utilisateurs de sentry nba , sa peut être fort intéressant , car ils ont besoin de combo list , wordlist

                              Au cas ou tu ne serais ce que c'est sentry nba voici une explication vidéo
                              ==> http://www.youtube.com/watch?v=xO41utHvA_8

                              Commentaire

                              Chargement...
                              X