• Inicio
  • Buscar
  • Ingresar
  • Registrarse

    Tecnología y Educación: Una combinación para el éxito

    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • C / C++ »
    • [Funcionando] Cifrador-descifrador de archivos en C
    • Imprimir
    Páginas: [1] 2 3   Ir Abajo

    Autor Tema: [Funcionando] Cifrador-descifrador de archivos en C  (Leído 11783 veces)

    Desconectado C_printfer

    • { L4 } Geek
    • ****
    • Mensajes: 350
    • NO RESPONDO PRIVADOS CON DUDAS, para eso el foro
      • Ver Perfil
    [Funcionando] Cifrador-descifrador de archivos en C
    « en: Agosto 10, 2014, 03:44:25 pm »
     ;D ;D ;D

    Hola a todos!

    Se me ocurrió la idea de hacer un cifrador descifrador de archivos, ya sean imágenes, ficheros de texto, o cualquier cosa. La idea es hacerlo en C o Java, ya que son los lenguajes más comunes y que más gente conoce. Si se decide hacerlo en Java, incluso podríamos crearle una interfaz gráfica a la aplicación y dejarla bonita jejeje.  :P :P Además, podría servir para el proyecto del IRC, ya que podrán utilizar este cifrado para cifrar las comunicaciones.

    Hemos de tener en cuenta que tenemos que utilizar un algoritmo de cifrado que permita el descifrado a partir de, simplemente, el texto cifrado. Es decir, las operaciones de cifrar y descifrar deben ser inversas. Para probar el programa simplemente podemos crearnos un fichero .txt y escribir en el mismo cualquier cosa, y cuando luego abramos el fichero con el texto cifrado que nos crea nuestro programa, veremos la diferencia. También podemos probar con una imagen o cualquier cosa. Quizás, más que tomar esto como un proyecto, es un código que os doy ya hecho para que cada uno aplique simplemente el algoritmo de cifrado que quiera. Yo os pongo un ejemplo (muy vago) en el código que os adjunto. Pero creo que podemos hacer algo interesante entre varios, y añadir funcionalidades al programa.

    Bueno, simplemente quedo a la espera de vuestra respuesta y de que se presente algún voluntario.

    Os dejo la base del programa hecha en C, queda hacer el algoritmo de cifrado (no hay problema en pasarlo a Java si preferís):

    Código: C
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3.  
    4. char cifrar(char *, int);
    5.  
    6. int main()
    7. {
    8.         char *texto=NULL; //texto a cifrar. Al no declararlo como array, no nos tenemos que preocupar del tamanyo del texto que vamos a cifrar
    9.         int ch; //variable temporal para leer cada caracter o EOF
    10.         char nombre[25]; //nombre que le vamos a dar al fichero de texto en el que se va a guardar el texto cifrado
    11.         FILE *pf; //puntero de tipo FILE, necesario para manejar ficheros
    12.         int i, numerocaracteres = 0, tamanyo;
    13.         char textocifrado; //variable que contendra el caracter resultante del cifrado. Si el algoritmo de cifrado que hagamos lo requiere, se puede declarar como un array
    14.  
    15.         printf("            CIFRADOR DE ARCHIVOS!!!\n\n");
    16.         printf("Introduce el nombre del archivo que se va a cifrar\n");
    17.         printf("(Debe darse segun nombre.extension)\n");
    18.         printf("El archivo a cifrar debe estar localizado en el mismo\n");
    19.         printf("directorio que este programa\n");
    20.         scanf("%s", &nombre);
    21.         getchar();
    22.  
    23.         pf = fopen(nombre, "r"); //si el fichero no existe, se produce error de apertura, o lo que es lo mismo, no hay nada que descifrar
    24.  
    25.         //comprobamos que no haya errores al abrir el fichero
    26.         if (pf == NULL)
    27.         {
    28.                 printf("No se encuentra un fichero con ese nombre.\n");
    29.                 printf("Pulsa Enter para salir\n");
    30.                 getchar();
    31.                 return -1;
    32.         }
    33.  
    34.         //CONTAMOS EL NUMERO DE CARACTERES DEL TEXTO A CIFRAR PARA VER SU TAMANYO
    35.         ch = fgetc(pf);
    36.         for (i = 0; ch != EOF; i++)
    37.         {
    38.                 numerocaracteres ++;
    39.                 ch = fgetc(pf);
    40.         }
    41.  
    42.         tamanyo = sizeof(char)*numerocaracteres;
    43.         texto = (char *)malloc(sizeof(tamanyo));
    44.  
    45.         if (texto == NULL)
    46.         {
    47.                 printf("Error, insuficiente espacio de memoria\n");
    48.                 printf("Enter para salir\n");
    49.                 getchar();
    50.                 return -1;
    51.         }
    52.  
    53.         rewind(pf);
    54.  
    55.         for (i = 0; i<numerocaracteres; i++)
    56.         {
    57.                 texto[i] = ch;
    58.                 ch = fgetc(pf);
    59.         }
    60.  
    61.         fclose(pf);
    62.  
    63.         printf("Que nombre doy al archivo cifrado?\n");
    64.         printf("(Debe darse segun nombre.extension)\n");
    65.         scanf("%s", &nombre);
    66.         getchar();
    67.  
    68.         pf = fopen(nombre, "w"); //abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe
    69.  
    70.         //comprobamos que no haya errores al abrir el fichero
    71.         if (pf == NULL)
    72.         {
    73.                 printf("Error al crear el fichero. Pulsa Enter para salir\n");
    74.                 getchar();
    75.                 return -1;
    76.         }
    77.  
    78.         i = 0;
    79.         while (i<numerocaracteres && ferror(pf) == 0) //respectivamente, mientras que no lleguemos al final del texto y no haya error
    80.         {
    81.                 textocifrado = cifrar(texto, i);
    82.                 fputc(textocifrado, pf);
    83.                 i++;
    84.         }
    85.  
    86.         printf("El texto se ha cifrado correctamente!\n");
    87.  
    88.         fclose(pf);
    89.  
    90.         //liberamos memoria
    91.         //free(texto);
    92.  
    93.         printf("               Programado en C por hackXcrack\n");
    94.         printf("Enter para salir del programa\n");
    95.  
    96.         getchar();
    97.         return 0;
    98. }
    99.  
    100. char cifrar(char *texto, int i) //ESTO ES LO QUE HAY QUE REALIZAR
    101. {
    102.         char textocifrado;
    103.  
    104.         textocifrado = texto[i] /* COMPLETAR */;
    105.  
    106.         return textocifrado;
    107. }

    La línea del free, para liberar memoria, la he comentado porque me da error y llevo un buen rato y no sé el motivo. Por favor, si alguien lo sabe o lo prueba y no le da error que lo diga.

    Saludos.
    « Última modificación: Septiembre 03, 2014, 01:18:16 pm por Krakakanok »
    En línea
    "Cuando leo comentarios de propuestas sobre a donde debe ir C, a menudo vuelvo la vista atrás y doy gracias de que no se haya desarrollado bajo el asesoramiento de multitudes de todo el mundo".

    Dennis MacAlistair Ritchie

    https://twitter.com/C_printfer

    Desconectado noopynoob

    • { L3 } Über
    • ***
    • Mensajes: 285
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #1 en: Agosto 10, 2014, 06:17:46 pm »
    Hola, ¿exactamente que problema tienes? lo que puedo decir es que el problema radica en el tamaño del fichero, es decir, compile el programa y pude cifrar ficheros menores de 8 bytes sin ningún problema, pero cuando pasa de ese tamaño el programa crashea, eran .txt que podían tener hasta 8 caracteres, intente modificar el código pero luego me daba otros problemas quizás alguien pueda solucionarlo.
    « Última modificación: Agosto 10, 2014, 06:20:05 pm por noopynoob »
    En línea
    in commonly passwords, we trust.

    Desconectado Krakakanok

    • Co-Administrador
    • { L7 } Juanker
    • ******
    • Mensajes: 1518
    • Los buenos nunca se esconden.
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #2 en: Agosto 10, 2014, 06:28:39 pm »
    noopynoob la idea de esta sección es la de proponer ideas para proyectos del foro y que los miembros de HxC que quieran hacer con el proyecto lo digan. C_printfer solo propone una base por la que empezar el proyecto que ha propuesto.

    Saludos.
    En línea
    No hagas nada cuyo resultado sea incierto.
    monitor mode enabled on usa0

    Desconectado C_printfer

    • { L4 } Geek
    • ****
    • Mensajes: 350
    • NO RESPONDO PRIVADOS CON DUDAS, para eso el foro
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #3 en: Agosto 11, 2014, 12:22:06 am »
    Noopynoob, no sabes cuanto me alegra tenerte de vuelta amigo!! Te echaba de menos  :D

    Gracias por la aclaración Kraka  ;)

    Porfis Noopynoob aclárame eso de los 8 bytes, que no te sigo... Yo he probado el programa con textos de más de 8 caracteres y no da ningún problema. Además, ¿qué lógica tendría que eso fallase para textos mayores de 8 bytes? Mi problema es que me da error al liberar la memoria, en el free, no sé a qué te refieres tú. Y lo raro es que antes el free iba perfecto, ha empezado a fallar a partir de unas modificaciones que he hecho en el código (y no veo el motivo).

    Saludos.
    « Última modificación: Agosto 11, 2014, 12:25:26 am por C_printfer »
    En línea
    "Cuando leo comentarios de propuestas sobre a donde debe ir C, a menudo vuelvo la vista atrás y doy gracias de que no se haya desarrollado bajo el asesoramiento de multitudes de todo el mundo".

    Dennis MacAlistair Ritchie

    https://twitter.com/C_printfer

    Desconectado noopynoob

    • { L3 } Über
    • ***
    • Mensajes: 285
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #4 en: Agosto 11, 2014, 09:21:48 pm »
    Pues si jeje, estaba ocupado y tuve que alejarme un poco de esto, pues mi carrera no tiene nada que ver con esto, en fin, me alegro de volver con ustedes.

    Pues así es, cuando quiero encriptar un texto donde haya más de 8 caracteres me dice program.exe dejó de funcionar y luego se cierra, ¿que lógica tiene? eso me pregunto yo, no entiendo que esta fallando, saludos.
    En línea
    in commonly passwords, we trust.

    Desconectado bum3r

    • { L0 } Ñuub
    • Mensajes: 21
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #5 en: Agosto 11, 2014, 09:36:02 pm »
    Cita de: noopynoob en Agosto 11, 2014, 09:21:48 pm
    Pues si jeje, estaba ocupado y tuve que alejarme un poco de esto, pues mi carrera no tiene nada que ver con esto, en fin, me alegro de volver con ustedes.

    Pues así es, cuando quiero encriptar un texto donde haya más de 8 caracteres me dice program.exe dejó de funcionar y luego se cierra, ¿que lógica tiene? eso me pregunto yo, no entiendo que esta fallando, saludos.

    Creo que es la linea 43 :               
    Código: C
    1. texto = (char *)malloc(sizeof(tamanyo));
    Habria que sacarle el sizeof :       
    Código: C
    1. texto = (char *)malloc(tamanyo);

    Ademas habria que invertir las lineas 57 y 58, sino texto[0] agarra basura.
    Código: C
    1. texto[i] = ch;  //primer vuelta del  bucle texto[0] = 'BASURA'
    2. ch = fgetc(pf);
    Quedaria asi :
    Código: C
    1. ch = fgetc(pf);
    2. texto[i] = ch;
    Saludos.
    « Última modificación: Septiembre 03, 2014, 01:19:06 pm por Krakakanok »
    En línea

    Desconectado C_printfer

    • { L4 } Geek
    • ****
    • Mensajes: 350
    • NO RESPONDO PRIVADOS CON DUDAS, para eso el foro
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #6 en: Agosto 11, 2014, 10:48:30 pm »
    Noopynoob ya sé que de momento esto no tiene lógica. Bum3r tienes razón, es que anduve trasteando con los for y la lié parda en el segundo. Ahora entiendo por qué me imprmía unos caracteres en chino el programa cuando estuve trasteando con la función de cifrar jajaja, por eso no llegué a poner lo que tenía hecho, creí que había algo mal  ??? ??? ??? ??? El segundo for tiene que quedar así (creo)  ::) ::) ::) ::) ::) ::) ::) :
    Código: C
    1.         rewind(pf);
    2.  
    3.         for (i = 0; i<numerocaracteres; i++)
    4.         {
    5.                 ch = fgetc(pf);
    6.                 texto[i] = ch;
    7.         }
    8.  
    9.         fclose(pf);

    No obstante, me sigue fastidiando el free. Y no entiendo por qué.
    Odio dejar las cosas incompletas así que lo pensaré hasta que salga.

    Gracias muchas por la ayudita!
    « Última modificación: Septiembre 03, 2014, 01:19:20 pm por Krakakanok »
    En línea
    "Cuando leo comentarios de propuestas sobre a donde debe ir C, a menudo vuelvo la vista atrás y doy gracias de que no se haya desarrollado bajo el asesoramiento de multitudes de todo el mundo".

    Dennis MacAlistair Ritchie

    https://twitter.com/C_printfer

    Desconectado bum3r

    • { L0 } Ñuub
    • Mensajes: 21
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #7 en: Agosto 11, 2014, 11:55:14 pm »
    Perdon que moleste de nuevo jeje, crei que ya lo habias solucionado a lo del free con el codigo que te pase, mira..

    Cambia estas lineas :
    Código: C
    1. tamanyo = sizeof(char)*numerocaracteres;
    2. texto = (char *)malloc(sizeof(tamanyo));

    Por esta
    Código: C
    1. texto = (char *)malloc(sizeof(char)*numerocaracteres);

    El problema esta en que estas usando sizeof dos veces. Saludos
    « Última modificación: Septiembre 03, 2014, 01:19:35 pm por Krakakanok »
    En línea

    Desconectado C_printfer

    • { L4 } Geek
    • ****
    • Mensajes: 350
    • NO RESPONDO PRIVADOS CON DUDAS, para eso el foro
      • Ver Perfil
    Re:Cifrador-descifrador (C o Java)
    « Respuesta #8 en: Agosto 12, 2014, 02:06:16 am »
    Bum3r tienes razón otra vez, gracias. Era eso lo que fallaba. No veas lo que cuesta detectar esos fallos tontos... como se camuflan los muy ______.  :D Te todas formas, no hacía falta al final ni malloc, ni free ni nada de nada, que bien que me he dado cuenta y se ha simplificado el código.

    Por tanto, abajo os pego ya el cifrador y el descifrador funcionando.

    Hay que dejar claro que en criptografía no está bien visto el hecho de que la seguridad de un algoritmo de cifrado venga dada porque dicho algoritmo es secreto. Por tanto, como simplemente por el hecho de publicar aquí el algoritmo ya es público, y todo el mundo puede atacarlo, basta con modificar los valores que están sumando y restando en la función de cifrar y añadir algún if o lo que se os ocurra para que solamente vosotros podáis cifrar y descifrar vuestros secretos jejeje. Se podría modificar el código para que pidiese por teclado una clave, de ese modo, la clave ya sería pública, pero lo malo es que habría que recordar esa clave para el descifrado, si no, no podremos descifrar. No sé si me explico bien.

    No soy ningún experto ni mucho menos en ningún tema, tampoco en criptografía, pero creo que este algoritmo no se puede atacar mediante los ataques existentes sobre textos cifrados. Además, si os fijáis en el código, parece imposible (en mi opinión) descifrar el texto sin conocer la clave. No obstante, la idea original era hacer algún algoritmo de cifrado chulo entre varios, de modo que podamos ver posibles puntos débiles del algoritmo de cifrado. Puede que en este algoritmo que se me ha ocurrido sea una basura y haya algo que permita que alguien lo ataque, pero por eso digo, cuantos más ojos lo miren, mejor.


    CIFRADOR
    Código: C
    1. //Programa realizado por Hack x Crack
    2.  
    3. #include<stdio.h>
    4. #include<stdlib.h>
    5.  
    6. char cifrar(char, int);
    7.  
    8. int main()
    9. {
    10.         char texto; //texto a cifrar. Al no declararlo como array, no nos tenemos que preocupar del tamanyo del texto que vamos a cifrar
    11.         int ch; //variable temporal para leer cada caracter o EOF
    12.         char nombre[25]; //nombre que le vamos a dar al fichero de texto en el que se va a guardar el texto cifrado
    13.         FILE *pf, *pf2; //puntero de tipo FILE, necesario para manejar ficheros
    14.         int i;
    15.         char textocifrado; //variable que contendra el caracter resultante del cifrado
    16.  
    17.         printf("            CIFRADOR DE ARCHIVOS!!!\n\n");
    18.         printf("Introduce el nombre del archivo que se va a cifrar\n");
    19.         printf("(Debe darse segun nombre.extension)\n");
    20.         printf("El archivo a cifrar debe estar localizado en el mismo\n");
    21.         printf("directorio que este programa\n");
    22.         scanf("%s", &nombre);
    23.         getchar();
    24.  
    25.         pf = fopen(nombre, "r"); //si el fichero no existe, se produce error de apertura, o lo que es lo mismo, no hay nada que cifrar
    26.  
    27.         printf("Que nombre doy al archivo cifrado?\n");
    28.         printf("(Debe darse segun nombre.extension)\n");
    29.         scanf("%s", &nombre);
    30.         getchar();
    31.         pf2 = fopen(nombre, "w"); //abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe
    32.  
    33.         //comprobamos que no haya errores al abrir el fichero
    34.         if (pf == NULL)
    35.         {
    36.                 printf("No se encuentra un fichero con ese nombre.\n");
    37.                 printf("Pulsa Enter para salir\n");
    38.                 getchar();
    39.                 return -1;
    40.         }
    41.  
    42.         //comprobamos que no haya errores al abrir el fichero
    43.         if (pf2 == NULL)
    44.         {
    45.                 printf("Error al crear el fichero. Pulsa Enter para salir\n");
    46.                 getchar();
    47.                 return -1;
    48.         }
    49.  
    50.         ch = fgetc(pf);
    51.         for (i = 0; ch != EOF; i++)
    52.         {
    53.                 texto = ch;
    54.                 textocifrado = cifrar(texto, i);
    55.                 fputc(textocifrado, pf2);
    56.                 ch = fgetc(pf);
    57.  
    58.                 if (i > 213490)
    59.                         i = 0;
    60.         }
    61.  
    62.         fclose(pf);
    63.         fclose(pf2);
    64.  
    65.         printf("El archivo se ha cifrado correctamente!\n");
    66.  
    67.         printf("               Programado en C por Hack x Crack\n");
    68.         printf("Enter para salir del programa\n");
    69.  
    70.         getchar();
    71.         return 0;
    72. }
    73.  
    74. char cifrar(char texto, int i)
    75. {
    76.         //Algoritmo ideado por C_printfer
    77.         char textocifrado;
    78.  
    79.         if (i <= 52) //no comprobamos si el valor de i es mayor o igual que 0 porque obviamente siempre lo va a ser
    80.                 textocifrado = texto + (i + 1);
    81.         else if (i >= 52 && i <= 79)
    82.                 textocifrado = texto - (i + 3);
    83.         else if (i >= 80 && i <= 111)
    84.                 textocifrado = texto + ((i / 2) - 7);
    85.         else if (i >= 112 && i <= 170)
    86.                 textocifrado = texto - (i / 2);
    87.         else if (i >= 171 && i <= 8457)
    88.                 textocifrado = texto - ((i / 3) + 1);
    89.         else if (i >= 8458 && i <= 21349)
    90.                 textocifrado = texto + ((i / 3) + 1);
    91.         else
    92.                 textocifrado = texto - 132;
    93.  
    94.         //ahora damos otra pasada para hacer aun mas dificil la obtencion del texto en claro a partir del texto cifrado,
    95.         //se trata de despistar al enemigo jejeje :D
    96.         if (((i * 3) % 4) == 1)
    97.                 textocifrado = texto - 1;
    98.         if ((i / 5) == 2)
    99.                 textocifrado = texto + (3 * i);
    100.         if (((i + 1) / 2) == 3)
    101.                 textocifrado = texto;
    102.         if (((i - 4) % 10) == 0)
    103.                 textocifrado = texto + (2 - i);
    104.         if (((i - 4) % 10) == 6)
    105.                 textocifrado = texto - 2;
    106.  
    107.         return textocifrado;
    108. }
    109.  
    110. //Cualquier critica, sugerencia, idea, ayuda, etc., sera bien recibida



    DESCIFRADOR
    Código: C
    1. //Programa realizado por Hack x Crack
    2.  
    3. #include<stdio.h>
    4. #include<stdlib.h>
    5.  
    6. //Programa realizado por Hack x Crack
    7.  
    8. #include<stdio.h>
    9. #include<stdlib.h>
    10.  
    11. char descifrar(char, int);
    12.  
    13. int main()
    14. {
    15.         char texto; //texto a descifrar. Al no declararlo como array, no nos tenemos que preocupar del tamanyo del texto que vamos a descifrar
    16.         int ch; //variable temporal para leer cada caracter o EOF
    17.         char nombre[25]; //nombre que le vamos a dar al fichero de texto en el que se va a guardar el texto descifrado
    18.         FILE *pf, *pf2; //puntero de tipo FILE, necesario para manejar ficheros
    19.         int i;
    20.         char textodescifrado; //variable que contendra el caracter resultante del descifrado
    21.  
    22.         printf("            DESCIFRADOR DE ARCHIVOS!!!\n\n");
    23.         printf("Introduce el nombre del archivo que se va a descifrar\n");
    24.         printf("(Debe darse segun nombre.extension)\n");
    25.         printf("El archivo a descifrar debe estar localizado en el mismo\n");
    26.         printf("directorio que este programa\n");
    27.         scanf("%s", &nombre);
    28.         getchar();
    29.  
    30.         pf = fopen(nombre, "r"); //si el fichero no existe, se produce error de apertura, o lo que es lo mismo, no hay nada que descifrar
    31.  
    32.         printf("Que nombre doy al archivo descifrado?\n");
    33.         printf("(Debe darse segun nombre.extension)\n");
    34.         scanf("%s", &nombre);
    35.         getchar();
    36.         pf2 = fopen(nombre, "w"); //abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe
    37.  
    38.         //comprobamos que no haya errores al abrir el fichero
    39.         if (pf == NULL)
    40.         {
    41.                 printf("No se encuentra un fichero con ese nombre.\n");
    42.                 printf("Pulsa Enter para salir\n");
    43.                 getchar();
    44.                 return -1;
    45.         }
    46.  
    47.         //comprobamos que no haya errores al abrir el fichero
    48.         if (pf2 == NULL)
    49.         {
    50.                 printf("Error al crear el fichero. Pulsa Enter para salir\n");
    51.                 getchar();
    52.                 return -1;
    53.         }
    54.  
    55.         ch = fgetc(pf);
    56.         for (i = 0; ch != EOF; i++)
    57.         {
    58.                 texto = ch;
    59.                 textodescifrado = descifrar(texto, i);
    60.                 fputc(textodescifrado, pf2);
    61.                 ch = fgetc(pf);
    62.  
    63.                 //evitamos que se desborde la i si ciframos archivos tremendamente grandes,
    64.                 //ademas asi volvemos a iniciar el algoritmo de cifrado
    65.                 if (i > 213490)
    66.                         i = 0;
    67.         }
    68.  
    69.         fclose(pf);
    70.         fclose(pf2);
    71.  
    72.         printf("El archivo se ha descifrado correctamente!\n");
    73.  
    74.         printf("               Programado en C por Hack x Crack\n");
    75.         printf("Enter para salir del programa\n");
    76.  
    77.         getchar();
    78.         return 0;
    79. }
    80.  
    81. char descifrar(char texto, int i)
    82. {
    83.         //Algoritmo ideado por C_printfer
    84.         char textodescifrado;
    85.  
    86.         if (i <= 52)
    87.                 textodescifrado = texto - (i + 1);
    88.         else if (i >= 52 && i <= 79)
    89.                 textodescifrado = texto + (i + 3);
    90.         else if (i >= 80 && i <= 111)
    91.                 textodescifrado = texto - ((i / 2) - 7);
    92.         else if (i >= 112 && i <= 170)
    93.                 textodescifrado = texto + (i / 2);
    94.         else if (i >= 171 && i <= 8457)
    95.                 textodescifrado = texto + ((i / 3) + 1);
    96.         else if (i >= 8458 && i <= 21349)
    97.                 textodescifrado = texto - ((i / 3) + 1);
    98.         else
    99.                 textodescifrado = texto + 132;
    100.  
    101.         if (((i * 3) % 4) == 1)
    102.                 textodescifrado = texto + 1;
    103.         if ((i / 5) == 2)
    104.                 textodescifrado = texto - (3 * i);
    105.         if (((i + 1) / 2) == 3)
    106.                 textodescifrado = texto;
    107.         if (((i - 4) % 10) == 0)
    108.                 textodescifrado = texto - (2 - i);
    109.         if (((i - 4) % 10) == 6)
    110.                 textodescifrado = texto + 2;
    111.  
    112.         return textodescifrado;
    113. }
    114.  
    115. //Cualquier critica, sugerencia, idea, ayuda, etc., sera bien recibida


    Espero que os guste y le encontréis utilidad.
    Será de agradecer toda crítica constructiva, sugerencia...

    Saludos.
    « Última modificación: Septiembre 03, 2014, 01:20:11 pm por Krakakanok »
    En línea
    "Cuando leo comentarios de propuestas sobre a donde debe ir C, a menudo vuelvo la vista atrás y doy gracias de que no se haya desarrollado bajo el asesoramiento de multitudes de todo el mundo".

    Dennis MacAlistair Ritchie

    https://twitter.com/C_printfer

    Desconectado stakewinner00

    • { L7 } Juanker
    • *******
    • Mensajes: 1010
      • Ver Perfil
      • http://david.mumei.space
    Re:[Funcionando] Cifrador-descifrador de archivos en C
    « Respuesta #9 en: Agosto 12, 2014, 02:16:49 am »
    El cifrador no me compila en la línea 6 "char cifrar(char *, int);"  es un puntero, pero en la 71 no "char cifrar(char texto, int i)"
    entonces bastaría con cambiar la linea 6 a char
    En línea

    • Imprimir
    Páginas: [1] 2 3   Ir Arriba
    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • C / C++ »
    • [Funcionando] Cifrador-descifrador de archivos en C
     

    • SMF | SMF © 2013, Simple Machines
    • XHTML
    • RSS
    • WAP2
    Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso... Learn more