Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: C_printfer en Octubre 12, 2014, 01:19:32 am

Título: Dennis Ritchie
Publicado por: C_printfer en Octubre 12, 2014, 01:19:32 am
Buenos días, buenas tardes o buenas noches jeje, llevaba tiempo con ganas de que llegase este día para poder recordar a alguien que se lo ganó a pulso pero nadie prácticamente se acordó de él, cuando fue él quien realmente sentó las bases que permitieron a otros muchas ganancias, pero sin Dennis Ritchie no hubieran conseguido nada. Gracias a Ritchie la informática pegó un salto de gigante.

Afortunadamente, Dennis MacAlistair Ritchie sigue vivo en cada línea de código que se escribe en C, cada vez que presionamos el botón de encender el ordenador con Linux, en cualquier sitio sigue con nostros, incluso le llevamos en el bolsillo, dentro del móvil. Este genio colaboró en la creación y el desarrollo del lenguaje de programación C y el sistema operativo Unix. Mi único propósito con este post es simplemente recordar un poquito a quien realmente se lo merece, ya que hoy se cumplen 3 años de su muerte.

Esperemos que esté bien donde se encuentre y le haya sido tenido en cuenta todo lo que realizó y dio a la humanidad. En efecto, todos los sistemas operativos, en mayor o menor medida, están programados en C, Linux lo está en su 100%.

Por tanto, como humilde gesto, os dejo aquí un programita hecho por mí en C, es un generador de diccionarios por fuerza bruta (es un pequeño gesto en el honor de mi ídolo jejeje). Por supuesto, va dedicado a esta excelente personalidad.

Gracias por todo Dennis Ritchie.


http://es.wikipedia.org/wiki/Dennis_Ritchie
http://es.wikipedia.org/wiki/Unix
--------------------------------------------------------

Código: C
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. /*
  5. El funcionamiento del programa es el siguiente: el programa parte de unos caracteres determinados,
  6. y a partir de ellos genera todas las claves posibles, almacenandolas en un fichero .txt que contendra dichas claves (TODAS LAS EXISTENTES).
  7. Para generar se han realizado dos funciones: una FUNCION PRINCIPAL main que agrupa los caracteres elegidos en grupos, lo cual es util
  8. porque, con vistas a generar un diccionario de claves, no podemos saber si la posible clave a descifrar contendra todos o solo una parte
  9. de los caracteres pensados.
  10.  
  11. Si partimos de A B C D, esta primera funcion hara:
  12. A;B;C;D
  13. AB;AC;AD
  14. BC;BD
  15. CD
  16. ABC;ABD
  17. BCD
  18. ABCD
  19.  
  20. La SEGUNDA FUNCION toma cada grupo generado por la primera funcion y los permuta de todas las formas que
  21. sean posibles, grupo por grupo:
  22.  
  23. Por ejemplo, para el grupo AB esta funcion va a hacer:
  24. AA;AB;BA;BB
  25.  
  26. Con todo lo anterior, queda asegurado que si la clave a descifrar contiene todos o parte de los caracteres utilizados por el programa
  27. para generar el diccionario de claves, esa clave estara en nuestro fichero de texto generado. Ya solamente sera cuestion de ver cual de todas es,
  28. utilizando para tal fin el programa oportuno.
  29. */
  30.  
  31. int funcionmezcla(char *,int,int,unsigned int,FILE *);
  32. FILE *nuevofichero(int,FILE *);
  33.  
  34. int main(void)//esta funcion pide los datos necesarios y realiza los distintos grupos con los caracteres introducidos
  35. {
  36.         char carac[26], carac2[26], caraccomb[26];
  37.         int auxnumcarac;
  38.         int numcarac;
  39.         int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, w2, x, y, z;
  40.         char respuesta, nombre[20];
  41.         int contador=0;
  42.         unsigned int tamanyo;
  43.         FILE *pf;
  44.  
  45.         printf("\n\n1324685709#$     GENERADOR DE DICCIONARIOS POR FUERZA BRUTA!!!     $#9075864231\n\n");
  46.         printf("Hola! Me llamo 0nf8uw%, soy el cerebro de este generador.\nTe voy a preguntar unas cosas");
  47.         printf(" sobre como quieres que se generen las claves jeje.\n\n");
  48.         printf("     **********************                           \n");
  49.         printf("      *                  *                            \n");
  50.         printf("       *    0     0     *                             \n");
  51.         printf("        *      <       *                              \n");
  52.         printf("K========*            *========P                      \n");
  53.         printf("          *  )---(   *                                \n");
  54.         printf("           *        *                                 \n");
  55.         printf("            *      *                                  \n");
  56.         printf("             *    *                                   \n");
  57.         printf("              *  *                                    \n");
  58.         printf("               **                                     \n");
  59.         printf("                ************---______                 \n\n");
  60.        
  61. intronumcarac:
  62.         printf("Numero de caracteres total para generar las permutaciones?\n");
  63.         scanf("%d", &numcarac);
  64.         getchar();//eliminamos el caracter de retorno de carro que se introduce al pulsar Enter
  65.         //comprobamos que el numero de caracteres no sea mayor que 26
  66.         if(numcarac>26)
  67.         {
  68.                 printf("Numero de caracteres por encima del permitido\n");
  69.                 goto intronumcarac;
  70.         }
  71.         if(numcarac<=1)
  72.         {
  73.                 printf("Carece de sentido un numero de caracteres menor que 1\n");
  74.                 goto intronumcarac;
  75.         }
  76.  
  77. introauxnumcarac:
  78.         printf("Numero minimo de caracteres por clave?\n");
  79.         scanf("%d", &auxnumcarac);
  80.         getchar();
  81.         if(auxnumcarac>numcarac)
  82.         {
  83.                 printf("Numero de caracteres por encima del permitido\n");
  84.                 printf("(tiene que ser menor o igual que el numero total)\n");
  85.                 goto introauxnumcarac;
  86.         }
  87.         if(auxnumcarac<1)
  88.         {
  89.                 printf("Carece de sentido un numero de caracteres menor que 1\n");
  90.                 goto introauxnumcarac;
  91.         }
  92.  
  93.         printf("Introducir ahora los caracteres deseados\n");
  94.         printf("Introducir un caracter y pulsar Enter, y asi sucesivamente\n");
  95.         for(i=0;i<numcarac;i++)//creamos array con datos a combinar
  96.         {
  97.                 scanf("%c", &carac[i]);
  98.                 getchar();//eliminamos el caracter de retorno de carro que se introduce al pulsar Enter
  99.         }
  100.  
  101.         printf("\nLos caracteres elegidos para las claves son:\n");
  102.         for(i=0;i<numcarac;i++)
  103.                 printf("%c  ", carac[i]);
  104.  
  105.         printf("\nCon esos caracteres se van a generar todas las claves con un total\n");
  106.         printf("de %d caracteres y un minimo de %d\n\n", numcarac, auxnumcarac);
  107.  
  108.         printf("Es correcto? (S para confirmar)\n\n");
  109.         scanf("%c", &respuesta);
  110.         getchar();
  111.  
  112.         if(respuesta!='S' && respuesta!='s')
  113.                 goto intronumcarac;
  114.  
  115.  
  116.         printf("Nombre para el diccionario a crear? (Debe darse de la forma: nombre.txt)\n");
  117.         scanf("%s", &nombre);
  118.         getchar();
  119.  
  120.         pf=fopen(nombre,"w");
  121.  
  122.         if(pf==NULL)
  123.         {
  124.                 printf("Hubo un error en la apertura del fichero\n");
  125.                 printf("Enter para detener la ejecucion del programa\n");
  126.                 getchar();
  127.                 exit(1);
  128.         }
  129.  
  130. introtamanyo:
  131.         printf("Introduce el limite de claves por fichero\n");
  132.         printf("(valor entre 0 y 4294967295)\n");//rango de valores que admite el tipo unsigned int
  133.         scanf("%d", &tamanyo);
  134.         getchar();
  135.  
  136.         if(tamanyo<0 || tamanyo>4294967295)
  137.                 goto introtamanyo;
  138.  
  139.         printf("\nEnter para generar...\n\n");
  140.         getchar();
  141.  
  142.         do
  143.         {
  144.                 for(a=0;a<numcarac;a++)
  145.                 {
  146.                         carac2[0]=a;
  147.                         if(auxnumcarac==1)
  148.                         {
  149.                                 for(w=0;w<1;w++)
  150.                                         caraccomb[w]=carac[carac2[w]];
  151.  
  152.                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  153.                                 /*nos tenemos que ir guardando el valor de contador porque si no lo hacemos, cada vez que empecemos a ejecutar esta funcion main,
  154.                                 el valor de contador volveria a ser siempre 0, y solo queremos que sea 0 cuando estemos en el limite de tamanyo de nuestro fichero,
  155.                                 para poder entonces iniciar de nuevo la cuenta*/
  156.                         }
  157.                         if(auxnumcarac>=2)
  158.                         {
  159.                                 for(b=a+1;b<numcarac;b++)
  160.                                 {
  161.                                         carac2[1]=b;
  162.                                         if(auxnumcarac==2)
  163.                                         {
  164.                                                 for(w=0;w<2;w++)
  165.                                                         caraccomb[w]=carac[carac2[w]];
  166.  
  167.                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  168.                                         }
  169.                                         if(auxnumcarac>=3)
  170.                                         {
  171.                                                 for(c=b+1;c<numcarac;c++)
  172.                                                 {//5
  173.                                                         carac2[2]=c;
  174.                                                         if(auxnumcarac==3)
  175.                                                         {
  176.                                                                 for(w=0;w<3;w++)
  177.                                                                         caraccomb[w]=carac[carac2[w]];
  178.  
  179.                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  180.                                                         }
  181.                                                         if(auxnumcarac>=4)
  182.                                                         {
  183.                                                                 for(d=c+1;d<numcarac;d++)
  184.                                                                 {
  185.                                                                         carac2[3]=d;
  186.                                                                         if(auxnumcarac==4)
  187.                                                                         {
  188.                                                                                 for(w=0;w<4;w++)
  189.                                                                                         caraccomb[w]=carac[carac2[w]];
  190.  
  191.                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  192.                                                                         }
  193.                                                                         if(auxnumcarac>=5)
  194.                                                                         {
  195.                                                                                 for(e=d+1;e<numcarac;e++)
  196.                                                                                 {
  197.                                                                                         carac2[4]=e;
  198.                                                                                         if(auxnumcarac==5)
  199.                                                                                         {
  200.                                                                                                 for(w=0;w<5;w++)
  201.                                                                                                         caraccomb[w]=carac[carac2[w]];
  202.  
  203.                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  204.                                                                                         }
  205.                                                                                         if(auxnumcarac>=6)
  206.                                                                                         {//10
  207.                                                                                                 for(f=e+1;f<numcarac;f++)
  208.                                                                                                 {
  209.                                                                                                         carac2[5]=f;
  210.                                                                                                         if(auxnumcarac==6)
  211.                                                                                                         {
  212.                                                                                                                 for(w=0;w<6;w++)
  213.                                                                                                                         caraccomb[w]=carac[carac2[w]];
  214.  
  215.                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  216.                                                                                                         }
  217.                                                                                                         if(auxnumcarac>=7)
  218.                                                                                                         {
  219.                                                                                                                 for(g=f+1;g<numcarac;g++)
  220.                                                                                                                 {
  221.                                                                                                                         carac2[6]=g;
  222.                                                                                                                         if(auxnumcarac==7)
  223.                                                                                                                         {
  224.                                                                                                                                 for(w=0;w<7;w++)
  225.                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  226.  
  227.                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  228.                                                                                                                         }
  229.                                                                                                                         if(auxnumcarac>=8)
  230.                                                                                                                         {
  231.                                                                                                                                 for(h=g+1;h<numcarac;h++)
  232.                                                                                                                                 {//15
  233.                                                                                                                                         carac2[7]=h;
  234.                                                                                                                                         if(auxnumcarac==8)
  235.                                                                                                                                         {
  236.                                                                                                                                                 for(w=0;w<8;w++)
  237.                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  238.  
  239.                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  240.                                                                                                                                         }
  241.                                                                                                                                         if(auxnumcarac>=9)
  242.                                                                                                                                         {
  243.                                                                                                                                                 for(i=h+1;i<numcarac;i++)
  244.                                                                                                                                                 {
  245.                                                                                                                                                         carac2[8]=i;
  246.                                                                                                                                                         if(auxnumcarac==9)
  247.                                                                                                                                                         {
  248.                                                                                                                                                                 for(w=0;w<9;w++)
  249.                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  250.  
  251.                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  252.                                                                                                                                                         }
  253.                                                                                                                                                         if(auxnumcarac>=10)
  254.                                                                                                                                                         {
  255.                                                                                                                                                                 for(j=i+1;j<numcarac;j++)
  256.                                                                                                                                                                 {
  257.                                                                                                                                                                         carac2[9]=j;
  258.                                                                                                                                                                         if(auxnumcarac==10)
  259.                                                                                                                                                                         {
  260.                                                                                                                                                                                 for(w=0;w<10;w++)
  261.                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  262.  
  263.                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  264.                                                                                                                                                                         }
  265.                                                                                                                                                                         if(auxnumcarac>=11)
  266.                                                                                                                                                                         {//20
  267.                                                                                                                                                                                 for(k=j+1;k<numcarac;k++)
  268.                                                                                                                                                                                 {
  269.                                                                                                                                                                                         carac2[10]=k;
  270.                                                                                                                                                                                         if(auxnumcarac==11)
  271.                                                                                                                                                                                         {
  272.                                                                                                                                                                                                 for(w=0;w<11;w++)
  273.                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  274.  
  275.                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  276.                                                                                                                                                                                         }
  277.                                                                                                                                                                                         if(auxnumcarac>=12)
  278.                                                                                                                                                                                         {
  279.                                                                                                                                                                                                 for(l=k+1;l<numcarac;l++)
  280.                                                                                                                                                                                                 {
  281.                                                                                                                                                                                                         carac2[11]=l;
  282.                                                                                                                                                                                                         if(auxnumcarac==12)
  283.                                                                                                                                                                                                         {
  284.                                                                                                                                                                                                                 for(w=0;w<12;w++)
  285.                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  286.  
  287.                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  288.                                                                                                                                                                                                         }
  289.                                                                                                                                                                                                         if(auxnumcarac>=13)
  290.                                                                                                                                                                                                         {
  291.                                                                                                                                                                                                                 for(m=l+1;m<numcarac;m++)
  292.                                                                                                                                                                                                                 {//25
  293.                                                                                                                                                                                                                         carac2[12]=m;
  294.                                                                                                                                                                                                                         if(auxnumcarac==13)
  295.                                                                                                                                                                                                                         {
  296.                                                                                                                                                                                                                                 for(w=0;w<13;w++)
  297.                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  298.  
  299.                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  300.                                                                                                                                                                                                                         }
  301.                                                                                                                                                                                                                         if(auxnumcarac>=14)
  302.                                                                                                                                                                                                                         {
  303.                                                                                                                                                                                                                                 for(n=m+1;n<numcarac;n++)
  304.                                                                                                                                                                                                                                 {
  305.                                                                                                                                                                                                                                         carac2[13]=n;
  306.                                                                                                                                                                                                                                         if(auxnumcarac==14)
  307.                                                                                                                                                                                                                                         {
  308.                                                                                                                                                                                                                                                 for(w=0;w<14;w++)
  309.                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  310.  
  311.                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  312.                                                                                                                                                                                                                                         }
  313.                                                                                                                                                                                                                                         if(auxnumcarac>=15)
  314.                                                                                                                                                                                                                                         {
  315.                                                                                                                                                                                                                                                 for(o=n+1;o<numcarac;o++)
  316.                                                                                                                                                                                                                                                 {
  317.                                                                                                                                                                                                                                                         carac2[14]=o;
  318.                                                                                                                                                                                                                                                         if(auxnumcarac==15)
  319.                                                                                                                                                                                                                                                         {
  320.                                                                                                                                                                                                                                                                 for(w=0;w<15;w++)
  321.                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  322.  
  323.                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  324.                                                                                                                                                                                                                                                         }
  325.                                                                                                                                                                                                                                                         if(auxnumcarac>=16)
  326.                                                                                                                                                                                                                                                         {//30
  327.                                                                                                                                                                                                                                                                 for(p=o+1;p<numcarac;p++)
  328.                                                                                                                                                                                                                                                                 {
  329.                                                                                                                                                                                                                                                                         carac2[15]=p;
  330.                                                                                                                                                                                                                                                                         if(auxnumcarac==16)
  331.                                                                                                                                                                                                                                                                         {
  332.                                                                                                                                                                                                                                                                                 for(w=0;w<16;w++)
  333.                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  334.  
  335.                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  336.                                                                                                                                                                                                                                                                         }
  337.                                                                                                                                                                                                                                                                         if(auxnumcarac>=17)
  338.                                                                                                                                                                                                                                                                         {
  339.                                                                                                                                                                                                                                                                                 for(q=p+1;q<numcarac;q++)
  340.                                                                                                                                                                                                                                                                                 {
  341.                                                                                                                                                                                                                                                                                         carac2[16]=q;
  342.                                                                                                                                                                                                                                                                                         if(auxnumcarac==17)
  343.                                                                                                                                                                                                                                                                                         {
  344.                                                                                                                                                                                                                                                                                                 for(w=0;w<17;w++)
  345.                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  346.  
  347.                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  348.                                                                                                                                                                                                                                                                                         }
  349.                                                                                                                                                                                                                                                                                         if(auxnumcarac>=18)
  350.                                                                                                                                                                                                                                                                                         {
  351.                                                                                                                                                                                                                                                                                                 for(r=q+1;r<numcarac;r++)
  352.                                                                                                                                                                                                                                                                                                 {//35
  353.                                                                                                                                                                                                                                                                                                         carac2[17]=r;
  354.                                                                                                                                                                                                                                                                                                         if(auxnumcarac==18)
  355.                                                                                                                                                                                                                                                                                                         {
  356.                                                                                                                                                                                                                                                                                                                 for(w=0;w<18;w++)
  357.                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  358.  
  359.                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  360.                                                                                                                                                                                                                                                                                                         }
  361.                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=19)
  362.                                                                                                                                                                                                                                                                                                         {
  363.                                                                                                                                                                                                                                                                                                                 for(s=r+1;s<numcarac;s++)
  364.                                                                                                                                                                                                                                                                                                                 {
  365.                                                                                                                                                                                                                                                                                                                         carac2[18]=s;
  366.                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==19)
  367.                                                                                                                                                                                                                                                                                                                         {
  368.                                                                                                                                                                                                                                                                                                                                 for(w=0;w<19;w++)
  369.                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  370.  
  371.                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  372.                                                                                                                                                                                                                                                                                                                         }
  373.                                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=20)
  374.                                                                                                                                                                                                                                                                                                                         {
  375.                                                                                                                                                                                                                                                                                                                                 for(t=s+1;t<numcarac;t++)
  376.                                                                                                                                                                                                                                                                                                                                 {
  377.                                                                                                                                                                                                                                                                                                                                         carac2[19]=t;
  378.                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==20)
  379.                                                                                                                                                                                                                                                                                                                                         {
  380.                                                                                                                                                                                                                                                                                                                                                 for(w=0;w<20;w++)
  381.                                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  382.  
  383.                                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  384.                                                                                                                                                                                                                                                                                                                                         }
  385.                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=21)
  386.                                                                                                                                                                                                                                                                                                                                         {//40
  387.                                                                                                                                                                                                                                                                                                                                                 for(u=t+1;u<numcarac;u++)
  388.                                                                                                                                                                                                                                                                                                                                                 {
  389.                                                                                                                                                                                                                                                                                                                                                         carac2[20]=u;
  390.                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==21)
  391.                                                                                                                                                                                                                                                                                                                                                         {
  392.                                                                                                                                                                                                                                                                                                                                                                 for(w=0;w<21;w++)
  393.                                                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  394.  
  395.                                                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  396.                                                                                                                                                                                                                                                                                                                                                         }
  397.                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=22)
  398.                                                                                                                                                                                                                                                                                                                                                         {
  399.                                                                                                                                                                                                                                                                                                                                                                 for(v=u+1;v<numcarac;v++)
  400.                                                                                                                                                                                                                                                                                                                                                                 {
  401.                                                                                                                                                                                                                                                                                                                                                                         carac2[21]=v;
  402.                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==22)
  403.                                                                                                                                                                                                                                                                                                                                                                         {
  404.                                                                                                                                                                                                                                                                                                                                                                                 for(w=0;w<22;w++)
  405.                                                                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  406.  
  407.                                                                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  408.                                                                                                                                                                                                                                                                                                                                                                         }
  409.                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=23)
  410.                                                                                                                                                                                                                                                                                                                                                                         {
  411.                                                                                                                                                                                                                                                                                                                                                                                 for(w2=v+1;w2<numcarac;w2++)
  412.                                                                                                                                                                                                                                                                                                                                                                                 {//45
  413.                                                                                                                                                                                                                                                                                                                                                                                         carac2[22]=w2;
  414.                                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==23)
  415.                                                                                                                                                                                                                                                                                                                                                                                         {
  416.                                                                                                                                                                                                                                                                                                                                                                                                 for(w=0;w<23;w++)
  417.                                                                                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  418.  
  419.                                                                                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  420.                                                                                                                                                                                                                                                                                                                                                                                         }
  421.                                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=24)
  422.                                                                                                                                                                                                                                                                                                                                                                                         {
  423.                                                                                                                                                                                                                                                                                                                                                                                                 for(x=w2+1;x<numcarac;x++)
  424.                                                                                                                                                                                                                                                                                                                                                                                                 {
  425.                                                                                                                                                                                                                                                                                                                                                                                                         carac2[23]=x;
  426.                                                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==24)
  427.                                                                                                                                                                                                                                                                                                                                                                                                         {
  428.                                                                                                                                                                                                                                                                                                                                                                                                                 for(w=0;w<24;w++)
  429.                                                                                                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  430.  
  431.                                                                                                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  432.                                                                                                                                                                                                                                                                                                                                                                                                         }
  433.                                                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac>=25)
  434.                                                                                                                                                                                                                                                                                                                                                                                                         {
  435.                                                                                                                                                                                                                                                                                                                                                                                                                 for(y=x+1;y<numcarac;y++)
  436.                                                                                                                                                                                                                                                                                                                                                                                                                 {
  437.                                                                                                                                                                                                                                                                                                                                                                                                                         carac2[24]=y;
  438.                                                                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==25)
  439.                                                                                                                                                                                                                                                                                                                                                                                                                         {
  440.                                                                                                                                                                                                                                                                                                                                                                                                                                 for(w=0;w<25;w++)
  441.                                                                                                                                                                                                                                                                                                                                                                                                                                         caraccomb[w]=carac[carac2[w]];
  442.  
  443.                                                                                                                                                                                                                                                                                                                                                                                                                                 contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  444.                                                                                                                                                                                                                                                                                                                                                                                                                         }
  445.                                                                                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==26)
  446.                                                                                                                                                                                                                                                                                                                                                                                                                         {//50
  447.                                                                                                                                                                                                                                                                                                                                                                                                                                 for(z=y+1;z<numcarac;z++)
  448.                                                                                                                                                                                                                                                                                                                                                                                                                                 {//51
  449.                                                                                                                                                                                                                                                                                                                                                                                                                                         carac2[25]=z;
  450.  
  451.                                                                                                                                                                                                                                                                                                                                                                                                                                         for(w=0;w<26;w++)
  452.                                                                                                                                                                                                                                                                                                                                                                                                                                                 caraccomb[w]=carac[carac2[w]];
  453.  
  454.                                                                                                                                                                                                                                                                                                                                                                                                                                         contador=funcionmezcla(caraccomb,auxnumcarac,contador,tamanyo,pf);
  455.                                                                                                                                                                                                                                                                                                                                                                                                                                 }}}}}/*5*/}}}}}/*10*/}}}}}/*15*/}}}}}/*20*/}}}}}/*25*/}}}}}/*30*/}}}}}/*35*/}}}}}/*40*/}}}}}/*45*/}}}}}/*50*/}//51
  456.  
  457.                 auxnumcarac++;
  458.  
  459.         }while(auxnumcarac<=numcarac);
  460.  
  461.         printf("................................................................\n");
  462.         printf("\nTODAS LAS CLAVES POSIBLES CON LOS CARACTERES INTRODUCIDOS\n");
  463.         printf("HAN SIDO REALIZADAS CON EXITO!\n\n\n");
  464.  
  465.         printf("Dedicado a la memoria de Dennis MacAlistair Ritchie\n\n");
  466.  
  467.         printf("Cuando leo comentarios de propuestas sobre a donde debe ir C,\n");
  468.         printf("a menudo vuelvo la vista atras y doy gracias de que no se haya\n");
  469.         printf("desarrollado bajo el asesoramiento de multitudes de todo el mundo\n");
  470.         printf("                           Dennis MacAlistair Ritchie\n\n");
  471.         printf("               Programado en C por el inutil de C_printfer :)\n");
  472.  
  473.         printf("           ..          ..                 ..    ..                  .. ||\n");
  474.         printf("        ..             .. ..              ..    ..                  .. ||\n");
  475.         printf("     ..                ..  ..             ..    ..                  .. ||\n");
  476.         printf("   ..                  ..   ..            ..    ..                  .. ||\n");
  477.         printf("  ..                   ..    ..           ..    ..                  .. ||\n");
  478.         printf("  ..                   ..     ..          ..    ..                  .. ||\n");
  479.         printf("  ..                   ..      ..         ..    ..                  .. ||\n");
  480.         printf("  ..                   ..       ..        ..    ..                  .. ||\n");
  481.         printf("  ..                   ..        ..       ..    ..                  .. ||\n");
  482.         printf("  ..   ............    ..         ..      ..    ..                  .. ||\n");
  483.         printf("  ..   ............    ..          ..     ..    ..     & LINUX!     .. ||\n");
  484.         printf("  ..             ..    ..           ..    ..     ..                 .. ||\n");
  485.         printf("  ..             ..    ..            ..   ..      ..               ..  ||\n");
  486.         printf("    ..           ..    ..             ..  ..       ..             ..   ||\n");
  487.         printf("      ............     ..              .. ..        ...............    ..\n");
  488.         printf("        ........       ..                 ..         .............     ..\n");
  489.  
  490.         printf("\nEnter para salir\n");
  491.         getchar();
  492.  
  493.         return 0;
  494. }
  495.  
  496.  
  497. int funcionmezcla(char caraccomb[], int auxnumcarac, int contador, unsigned int tamanyo, FILE *pf)//esta funcion permuta los grupos que hacemos en la funcion main
  498. {
  499.         int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
  500.  
  501.         for(a=0;a<auxnumcarac;a++)
  502.         {
  503.                 if(!(auxnumcarac>1))
  504.                 {
  505.                         printf("%c", caraccomb[a]);printf("\n");
  506.                         fputc(caraccomb[a], pf);fputc('\n', pf);
  507.                         if(auxnumcarac==1)
  508.                         {
  509.                                 contador++;
  510.                                 if(contador==tamanyo)
  511.                                 {
  512.                                         pf=nuevofichero(contador,pf);
  513.                                         contador=0;
  514.                                 }
  515.                         }
  516.                 }
  517.                 if(auxnumcarac>=2)
  518.                 {
  519.                         for(b=0;b<auxnumcarac;b++)
  520.                         {
  521.                                 if(!(auxnumcarac>2))
  522.                                 {
  523.                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("\n");
  524.                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc('\n', pf);
  525.                                         if(auxnumcarac==2)
  526.                                         {
  527.                                                 contador++;
  528.                                                 if(contador==tamanyo)
  529.                                                 {
  530.                                                         pf=nuevofichero(contador,pf);
  531.                                                         contador=0;
  532.                                                 }
  533.                                         }
  534.                                 }
  535.                                 if(auxnumcarac>=3)
  536.                                 {
  537.                                         for(c=0;c<auxnumcarac;c++)
  538.                                         {//5
  539.                                                 if(!(auxnumcarac>3))
  540.                                                 {
  541.                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("\n");
  542.                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc('\n', pf);
  543.                                                         if(auxnumcarac==3)
  544.                                                         {
  545.                                                                 contador++;
  546.                                                                 if(contador==tamanyo)
  547.                                                                 {
  548.                                                                         pf=nuevofichero(contador,pf);
  549.                                                                         contador=0;
  550.                                                                 }
  551.                                                         }
  552.                                                 }
  553.                                                 if(auxnumcarac>=4)
  554.                                                 {
  555.                                                         for(d=0;d<auxnumcarac;d++)
  556.                                                         {
  557.                                                                 if(!(auxnumcarac>4))
  558.                                                                 {
  559.                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("\n");
  560.                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc('\n', pf);
  561.                                                                         if(auxnumcarac==4)
  562.                                                                         {
  563.                                                                                 contador++;
  564.                                                                                 if(contador==tamanyo)
  565.                                                                                 {
  566.                                                                                         pf=nuevofichero(contador,pf);
  567.                                                                                         contador=0;
  568.                                                                                 }
  569.                                                                         }
  570.                                                                 }
  571.                                                                 if(auxnumcarac>=5)
  572.                                                                 {
  573.                                                                         for(e=0;e<auxnumcarac;e++)
  574.                                                                         {
  575.                                                                                 if(!(auxnumcarac>5))
  576.                                                                                 {
  577.                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("\n");
  578.                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc('\n', pf);
  579.                                                                                         if(auxnumcarac==5)
  580.                                                                                         {
  581.                                                                                                 contador++;
  582.                                                                                                 if(contador==tamanyo)
  583.                                                                                                 {
  584.                                                                                                         pf=nuevofichero(contador,pf);
  585.                                                                                                         contador=0;
  586.                                                                                                 }
  587.                                                                                         }
  588.                                                                                 }
  589.                                                                                 if(auxnumcarac>=6)
  590.                                                                                 {//10
  591.                                                                                         for(f=0;f<auxnumcarac;f++)
  592.                                                                                         {
  593.                                                                                                 if(!(auxnumcarac>6))
  594.                                                                                                 {
  595.                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("\n");
  596.                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc('\n', pf);
  597.                                                                                                         if(auxnumcarac==6)
  598.                                                                                                         {
  599.                                                                                                                 contador++;
  600.                                                                                                                 if(contador==tamanyo)
  601.                                                                                                                 {
  602.                                                                                                                         pf=nuevofichero(contador,pf);
  603.                                                                                                                         contador=0;
  604.                                                                                                                 }
  605.                                                                                                         }
  606.                                                                                                 }
  607.                                                                                                 if(auxnumcarac>=7)
  608.                                                                                                 {
  609.                                                                                                         for(g=0;g<auxnumcarac;g++)
  610.                                                                                                         {
  611.                                                                                                                 if(!(auxnumcarac>7))
  612.                                                                                                                 {
  613.                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("\n");
  614.                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc('\n', pf);
  615.                                                                                                                         if(auxnumcarac==7)
  616.                                                                                                                         {
  617.                                                                                                                                 contador++;
  618.                                                                                                                                 if(contador==tamanyo)
  619.                                                                                                                                 {
  620.                                                                                                                                         pf=nuevofichero(contador,pf);
  621.                                                                                                                                         contador=0;
  622.                                                                                                                                 }
  623.                                                                                                                         }
  624.                                                                                                                 }
  625.                                                                                                                 if(auxnumcarac>=8)
  626.                                                                                                                 {
  627.                                                                                                                         for(h=0;h<auxnumcarac;h++)
  628.                                                                                                                         {//15
  629.                                                                                                                                 if(!(auxnumcarac>8))
  630.                                                                                                                                 {
  631.                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("\n");
  632.                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc('\n', pf);
  633.                                                                                                                                         if(auxnumcarac==8)
  634.                                                                                                                                         {
  635.                                                                                                                                                 contador++;
  636.                                                                                                                                                 if(contador==tamanyo)
  637.                                                                                                                                                 {
  638.                                                                                                                                                         pf=nuevofichero(contador,pf);
  639.                                                                                                                                                         contador=0;
  640.                                                                                                                                                 }
  641.                                                                                                                                         }
  642.                                                                                                                                 }
  643.                                                                                                                                 if(auxnumcarac>=9)
  644.                                                                                                                                 {
  645.                                                                                                                                         for(i=0;i<auxnumcarac;i++)
  646.                                                                                                                                         {
  647.                                                                                                                                                 if(!(auxnumcarac>9))
  648.                                                                                                                                                 {
  649.                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("\n");
  650.                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc('\n', pf);
  651.                                                                                                                                                         if(auxnumcarac==9)
  652.                                                                                                                                                         {
  653.                                                                                                                                                                 contador++;
  654.                                                                                                                                                                 if(contador==tamanyo)
  655.                                                                                                                                                                 {
  656.                                                                                                                                                                         pf=nuevofichero(contador,pf);
  657.                                                                                                                                                                         contador=0;
  658.                                                                                                                                                                 }
  659.                                                                                                                                                         }
  660.                                                                                                                                                 }
  661.                                                                                                                                                 if(auxnumcarac>=10)
  662.                                                                                                                                                 {
  663.                                                                                                                                                         for(j=0;j<auxnumcarac;j++)
  664.                                                                                                                                                         {
  665.                                                                                                                                                                 if(!(auxnumcarac>10))
  666.                                                                                                                                                                 {
  667.                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("\n");
  668.                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc('\n', pf);
  669.                                                                                                                                                                         if(auxnumcarac==10)
  670.                                                                                                                                                                         {
  671.                                                                                                                                                                                 contador++;
  672.                                                                                                                                                                                 if(contador==tamanyo)
  673.                                                                                                                                                                                 {
  674.                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  675.                                                                                                                                                                                         contador=0;
  676.                                                                                                                                                                                 }
  677.                                                                                                                                                                         }
  678.                                                                                                                                                                 }
  679.                                                                                                                                                                 if(auxnumcarac>=11)
  680.                                                                                                                                                                 {//20
  681.                                                                                                                                                                         for(k=0;k<auxnumcarac;k++)
  682.                                                                                                                                                                         {
  683.                                                                                                                                                                                 if(!(auxnumcarac>11))
  684.                                                                                                                                                                                 {
  685.                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("\n");
  686.                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc('\n', pf);
  687.                                                                                                                                                                                         if(auxnumcarac==11)
  688.                                                                                                                                                                                         {
  689.                                                                                                                                                                                                 contador++;
  690.                                                                                                                                                                                                 if(contador==tamanyo)
  691.                                                                                                                                                                                                 {
  692.                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  693.                                                                                                                                                                                                         contador=0;
  694.                                                                                                                                                                                                 }
  695.                                                                                                                                                                                         }
  696.                                                                                                                                                                                 }
  697.                                                                                                                                                                                 if(auxnumcarac>=12)
  698.                                                                                                                                                                                 {
  699.                                                                                                                                                                                         for(l=0;l<auxnumcarac;l++)
  700.                                                                                                                                                                                         {
  701.                                                                                                                                                                                                 if(!(auxnumcarac>12))
  702.                                                                                                                                                                                                 {
  703.                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("\n");
  704.                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc('\n', pf);
  705.                                                                                                                                                                                                         if(auxnumcarac==12)
  706.                                                                                                                                                                                                         {
  707.                                                                                                                                                                                                                 contador++;
  708.                                                                                                                                                                                                                 if(contador==tamanyo)
  709.                                                                                                                                                                                                                 {
  710.                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  711.                                                                                                                                                                                                                         contador=0;
  712.                                                                                                                                                                                                                 }
  713.                                                                                                                                                                                                         }
  714.                                                                                                                                                                                                 }
  715.                                                                                                                                                                                                 if(auxnumcarac>=13)
  716.                                                                                                                                                                                                 {
  717.                                                                                                                                                                                                         for(m=0;m<auxnumcarac;m++)
  718.                                                                                                                                                                                                         {//25
  719.                                                                                                                                                                                                                 if(!(auxnumcarac>13))
  720.                                                                                                                                                                                                                 {
  721.                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("\n");
  722.                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc('\n', pf);
  723.                                                                                                                                                                                                                         if(auxnumcarac==13)
  724.                                                                                                                                                                                                                         {
  725.                                                                                                                                                                                                                                 contador++;
  726.                                                                                                                                                                                                                                 if(contador==tamanyo)
  727.                                                                                                                                                                                                                                 {
  728.                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  729.                                                                                                                                                                                                                                         contador=0;
  730.                                                                                                                                                                                                                                 }
  731.                                                                                                                                                                                                                         }
  732.                                                                                                                                                                                                                 }
  733.                                                                                                                                                                                                                 if(auxnumcarac>=14)
  734.                                                                                                                                                                                                                 {
  735.                                                                                                                                                                                                                         for(n=0;n<auxnumcarac;n++)
  736.                                                                                                                                                                                                                         {
  737.                                                                                                                                                                                                                                 if(!(auxnumcarac>14))
  738.                                                                                                                                                                                                                                 {
  739.                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("\n");
  740.                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc('\n', pf);
  741.                                                                                                                                                                                                                                         if(auxnumcarac==14)
  742.                                                                                                                                                                                                                                         {
  743.                                                                                                                                                                                                                                                 contador++;
  744.                                                                                                                                                                                                                                                 if(contador==tamanyo)
  745.                                                                                                                                                                                                                                                 {
  746.                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  747.                                                                                                                                                                                                                                                         contador=0;
  748.                                                                                                                                                                                                                                                 }
  749.                                                                                                                                                                                                                                         }
  750.                                                                                                                                                                                                                                 }
  751.                                                                                                                                                                                                                                 if(auxnumcarac>=15)
  752.                                                                                                                                                                                                                                 {
  753.                                                                                                                                                                                                                                         for(o=0;o<auxnumcarac;o++)
  754.                                                                                                                                                                                                                                         {
  755.                                                                                                                                                                                                                                                 if(!(auxnumcarac>15))
  756.                                                                                                                                                                                                                                                 {
  757.                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("\n");
  758.                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc('\n', pf);
  759.                                                                                                                                                                                                                                                         if(auxnumcarac==15)
  760.                                                                                                                                                                                                                                                         {
  761.                                                                                                                                                                                                                                                                 contador++;
  762.                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  763.                                                                                                                                                                                                                                                                 {
  764.                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  765.                                                                                                                                                                                                                                                                         contador=0;
  766.                                                                                                                                                                                                                                                                 }
  767.                                                                                                                                                                                                                                                         }
  768.                                                                                                                                                                                                                                                 }
  769.                                                                                                                                                                                                                                                 if(auxnumcarac>=16)
  770.                                                                                                                                                                                                                                                 {//30
  771.                                                                                                                                                                                                                                                         for(p=0;p<auxnumcarac;p++)
  772.                                                                                                                                                                                                                                                         {
  773.                                                                                                                                                                                                                                                                 if(!(auxnumcarac>16))
  774.                                                                                                                                                                                                                                                                 {
  775.                                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("%c", caraccomb[p]);printf("\n");
  776.                                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc(caraccomb[p], pf);fputc('\n', pf);
  777.                                                                                                                                                                                                                                                                         if(auxnumcarac==16)
  778.                                                                                                                                                                                                                                                                         {
  779.                                                                                                                                                                                                                                                                                 contador++;
  780.                                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  781.                                                                                                                                                                                                                                                                                 {
  782.                                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  783.                                                                                                                                                                                                                                                                                         contador=0;
  784.                                                                                                                                                                                                                                                                                 }
  785.                                                                                                                                                                                                                                                                         }
  786.                                                                                                                                                                                                                                                                 }
  787.                                                                                                                                                                                                                                                                 if(auxnumcarac>=17)
  788.                                                                                                                                                                                                                                                                 {
  789.                                                                                                                                                                                                                                                                         for(q=0;q<auxnumcarac;q++)
  790.                                                                                                                                                                                                                                                                         {
  791.                                                                                                                                                                                                                                                                                 if(!(auxnumcarac>17))
  792.                                                                                                                                                                                                                                                                                 {
  793.                                                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("%c", caraccomb[p]);printf("%c", caraccomb[q]);printf("\n");
  794.                                                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc(caraccomb[p], pf);fputc(caraccomb[q], pf);fputc('\n', pf);
  795.                                                                                                                                                                                                                                                                                         if(auxnumcarac==17)
  796.                                                                                                                                                                                                                                                                                         {
  797.                                                                                                                                                                                                                                                                                                 contador++;
  798.                                                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  799.                                                                                                                                                                                                                                                                                                 {
  800.                                                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  801.                                                                                                                                                                                                                                                                                                         contador=0;
  802.                                                                                                                                                                                                                                                                                                 }
  803.                                                                                                                                                                                                                                                                                         }
  804.                                                                                                                                                                                                                                                                                 }
  805.                                                                                                                                                                                                                                                                                 if(auxnumcarac>=18)
  806.                                                                                                                                                                                                                                                                                 {
  807.                                                                                                                                                                                                                                                                                         for(r=0;r<auxnumcarac;r++)
  808.                                                                                                                                                                                                                                                                                         {//35
  809.                                                                                                                                                                                                                                                                                                 if(!(auxnumcarac>18))
  810.                                                                                                                                                                                                                                                                                                 {
  811.                                                                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("%c", caraccomb[p]);printf("%c", caraccomb[q]);printf("%c", caraccomb[r]);printf("\n");
  812.                                                                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc(caraccomb[p], pf);fputc(caraccomb[q], pf);fputc(caraccomb[r], pf);fputc('\n', pf);
  813.                                                                                                                                                                                                                                                                                                         if(auxnumcarac==18)
  814.                                                                                                                                                                                                                                                                                                         {
  815.                                                                                                                                                                                                                                                                                                                 contador++;
  816.                                                                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  817.                                                                                                                                                                                                                                                                                                                 {
  818.                                                                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  819.                                                                                                                                                                                                                                                                                                                         contador=0;
  820.                                                                                                                                                                                                                                                                                                                 }
  821.                                                                                                                                                                                                                                                                                                         }
  822.                                                                                                                                                                                                                                                                                                 }
  823.                                                                                                                                                                                                                                                                                                 if(auxnumcarac>=19)
  824.                                                                                                                                                                                                                                                                                                 {
  825.                                                                                                                                                                                                                                                                                                         for(s=0;s<auxnumcarac;s++)
  826.                                                                                                                                                                                                                                                                                                         {
  827.                                                                                                                                                                                                                                                                                                                 if(!(auxnumcarac>19))
  828.                                                                                                                                                                                                                                                                                                                 {
  829.                                                                                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("%c", caraccomb[p]);printf("%c", caraccomb[q]);printf("%c", caraccomb[r]);printf("%c", caraccomb[s]);printf("\n");
  830.                                                                                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc(caraccomb[p], pf);fputc(caraccomb[q], pf);fputc(caraccomb[r], pf);fputc(caraccomb[s], pf);fputc('\n', pf);
  831.                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==19)
  832.                                                                                                                                                                                                                                                                                                                         {
  833.                                                                                                                                                                                                                                                                                                                                 contador++;
  834.                                                                                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  835.                                                                                                                                                                                                                                                                                                                                 {
  836.                                                                                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  837.                                                                                                                                                                                                                                                                                                                                         contador=0;
  838.                                                                                                                                                                                                                                                                                                                                 }
  839.                                                                                                                                                                                                                                                                                                                         }
  840.                                                                                                                                                                                                                                                                                                                 }
  841.                                                                                                                                                                                                                                                                                                                 if(auxnumcarac>=20)
  842.                                                                                                                                                                                                                                                                                                                 {
  843.                                                                                                                                                                                                                                                                                                                         for(t=0;t<auxnumcarac;t++)
  844.                                                                                                                                                                                                                                                                                                                         {
  845.                                                                                                                                                                                                                                                                                                                                 if(!(auxnumcarac>20))
  846.                                                                                                                                                                                                                                                                                                                                 {
  847.                                                                                                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("%c", caraccomb[p]);printf("%c", caraccomb[q]);printf("%c", caraccomb[r]);printf("%c", caraccomb[s]);printf("%c", caraccomb[t]);printf("\n");
  848.                                                                                                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc(caraccomb[p], pf);fputc(caraccomb[q], pf);fputc(caraccomb[r], pf);fputc(caraccomb[s], pf);fputc(caraccomb[t], pf);fputc('\n', pf);
  849.                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==20)
  850.                                                                                                                                                                                                                                                                                                                                         {
  851.                                                                                                                                                                                                                                                                                                                                                 contador++;
  852.                                                                                                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  853.                                                                                                                                                                                                                                                                                                                                                 {
  854.                                                                                                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  855.                                                                                                                                                                                                                                                                                                                                                         contador=0;
  856.                                                                                                                                                                                                                                                                                                                                                 }
  857.                                                                                                                                                                                                                                                                                                                                         }
  858.                                                                                                                                                                                                                                                                                                                                 }
  859.                                                                                                                                                                                                                                                                                                                                 if(auxnumcarac>=21)
  860.                                                                                                                                                                                                                                                                                                                                 {//40
  861.                                                                                                                                                                                                                                                                                                                                         for(u=0;u<auxnumcarac;u++)
  862.                                                                                                                                                                                                                                                                                                                                         {
  863.                                                                                                                                                                                                                                                                                                                                                 if(!(auxnumcarac>21))
  864.                                                                                                                                                                                                                                                                                                                                                 {
  865.                                                                                                                                                                                                                                                                                                                                                         printf("%c", caraccomb[a]);printf("%c", caraccomb[b]);printf("%c", caraccomb[c]);printf("%c", caraccomb[d]);printf("%c", caraccomb[e]);printf("%c", caraccomb[f]);printf("%c", caraccomb[g]);printf("%c", caraccomb[h]);printf("%c", caraccomb[i]);printf("%c", caraccomb[j]);printf("%c", caraccomb[k]);printf("%c", caraccomb[l]);printf("%c", caraccomb[m]);printf("%c", caraccomb[n]);printf("%c", caraccomb[o]);printf("%c", caraccomb[p]);printf("%c", caraccomb[q]);printf("%c", caraccomb[r]);printf("%c", caraccomb[s]);printf("%c", caraccomb[t]);printf("%c", caraccomb[u]);printf("\n");
  866.                                                                                                                                                                                                                                                                                                                                                         fputc(caraccomb[a], pf);fputc(caraccomb[b], pf);fputc(caraccomb[c], pf);fputc(caraccomb[d], pf);fputc(caraccomb[e], pf);fputc(caraccomb[f], pf);fputc(caraccomb[g], pf);fputc(caraccomb[h], pf);fputc(caraccomb[i], pf);fputc(caraccomb[j], pf);fputc(caraccomb[k], pf);fputc(caraccomb[l], pf);fputc(caraccomb[m], pf);fputc(caraccomb[n], pf);fputc(caraccomb[o], pf);fputc(caraccomb[p], pf);fputc(caraccomb[q], pf);fputc(caraccomb[r], pf);fputc(caraccomb[s], pf);fputc(caraccomb[t], pf);fputc(caraccomb[u], pf);fputc('\n', pf);
  867.                                                                                                                                                                                                                                                                                                                                                         if(auxnumcarac==21)
  868.                                                                                                                                                                                                                                                                                                                                                         {
  869.                                                                                                                                                                                                                                                                                                                                                                 contador++;
  870.                                                                                                                                                                                                                                                                                                                                                                 if(contador==tamanyo)
  871.                                                                                                                                                                                                                                                                                                                                                                 {
  872.                                                                                                                                                                                                                                                                                                                                                                         pf=nuevofichero(contador,pf);
  873.                                                                                                                                                                                                                                                                                                                   &nbs