• Viernes 8 de Noviembre de 2024, 16:35

Autor Tema:  Encriptar Archivos De Cualquier Tipo  (Leído 2360 veces)

sansoto5000

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Encriptar Archivos De Cualquier Tipo
« en: Jueves 31 de Agosto de 2006, 03:16 »
0
Quiero hacer un programa q encripte cualquier tipo de archivos partiendo desde la base de tomarlos a todos como archivos binarios...

o sea cambiar los 1 (unos) a 0 (ceros) y viceversa....pero tengo un problema....NO ME SALE!  :blink: ...

si alguien podria pasarme un poco de codigo sobre como encriptar el archivo...aunque sea con XOR...estaria bastante agradecido xD


  :smartass:

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Re: Encriptar Archivos De Cualquier Tipo
« Respuesta #1 en: Viernes 1 de Septiembre de 2006, 00:25 »
0
Hay algo que te podria ayudar y se llama Flex. Aqui te pongo un ejemplo de como funciona, no es lo que resuelve tu problema, pero puede servirte de ayuda:

Código: Text
  1. %{
  2. /* Este analizador lee de un fichero una serie de nombres (compuestos de letras
  3. mayusculas y minúsculas) y los va a poner sobre
  4. el fichero de salida en sentido inverso*/
  5. #include <string.h> /* MIRAR DONDE PONEMOS LAS LIBRERIAS QUE NOS HACE FALTA*/
  6.  
  7. int entero = 0;
  8. float real = 0;
  9. int contador = 0;
  10. char c;
  11. int i;
  12. %}
  13.  
  14.  
  15. INTEGER [0-9]+|[-][0-9]+
  16. FLOAT [0-9]+[.][0-9]+|[-][0-9]+[.][0-9]+
  17. OPERACION ("*"|"+"|"-"|"/")
  18. ESPECIAL ("ª"|"º"|"\"|"!"|"|"|"""|"#"|"$"|"%"|"&"|"¬"|"/"|"("|")"|"="|"?"|"'"|"¿"|"¡"|"@"|"^"|"`"|"["|"*"|"]"|"¨"|"´"|"{"|"ç"|"}"|";"|","|":"|"."|"_"|"<"|">")
  19.  
  20. %%
  21.  
  22.  
  23. [A-Z] {
  24.         c = yytext[0];
  25.         if (c != 'Z') {
  26.          c++;
  27.         }
  28.         else {
  29.             c = 'A';
  30.         }
  31.         fprintf(yyout,"%c",c);
  32. }
  33.  
  34. {INTEGER} {
  35.     entero=atoi(yytext);
  36.     entero=entero*2;
  37.     fprintf(yyout,"%d",entero);
  38. }
  39.  
  40. {FLOAT} {
  41.     real=atof(yytext);
  42.     real=real+4;
  43.     fprintf(yyout,"%f",real);
  44. }
  45.  
  46. {INTEGER}{OPERACION}{INTEGER}|{FLOAT}{OPERACION}{FLOAT} {
  47.     printf("ERROR: La operacion no ha sido encriptada\n");
  48.     fprintf(yyout,"%s",yytext);
  49. }
  50.  
  51. [a-z] {
  52.     c = yytext[0];
  53.     if (c != 'z') {
  54.         c++;
  55.     }
  56.     else {
  57.        c = 'a';
  58.     }
  59.     fprintf(yyout,"%c",c);
  60. }
  61.  
  62. [a-z][a-z] {
  63.     c = yytext[0];
  64.     if (c != 'z') {
  65.        c++;
  66.     }
  67.     else {
  68.        c = 'a';
  69.     }
  70.     fprintf(yyout,"%c",c);  
  71.   c = yytext[1];
  72.     fprintf(yyout,"%c",c);  
  73. }
  74.  
  75. {ESPECIAL}[A-Za-z]+{ESPECIAL} {
  76.   contador = yyleng;
  77.   char a = yytext[0];
  78.   char b = yytext[contador - 1];
  79.   if (a == b) {
  80.     c = ':';
  81.           fprintf(yyout,"%c",c);
  82.   }
  83.   else {
  84.           fprintf(yyout,"%c",a);
  85.   }
  86.   entero = atoi(&yytext[1]);
  87.   entero++;
  88.   fprintf(yyout, "%d", entero);
  89.   for (i = 2; i < contador - 2; i++) {
  90.     fprintf(yyout, "%c", yytext[i]);
  91.   }
  92.   entero = atoi(&yytext[contador - 2]);
  93.   entero++;
  94.   fprintf(yyout, "%d", entero);
  95.   if (a == b) {
  96.     c = ':';
  97.           fprintf(yyout,"%c",c);
  98.   }
  99.   else {
  100.       fprintf(yyout,"%c",a);
  101.   }
  102. }
  103.  
  104.  
  105. %%
  106. yywrap(){
  107. }
  108. main(int argc,char *argv[]){
  109.   if (argc!=3){
  110.     printf("LOS PARAMETROS SON:");
  111.     printf("\n1.-Dime el fichero de entrada");
  112.     printf("\n2.-Dime el fichero de salida");
  113.     exit(1);
  114.   }
  115.   yyin = fopen(argv[1],"rb");
  116.   if (yyin==NULL){
  117.     printf("\n No puedo abrir %s",argv[1]);
  118.     exit(1);
  119.   }
  120.   yyout = fopen(argv[2],"wb");
  121.   if (yyout==NULL){
  122.     printf("\n No puedo crear %s",argv[2]);
  123.     exit(1);
  124.   }
  125.   yylex();
  126. }
  127.  
  128.  


Cuando le pasas al flex ese archivo mediante la ventana de ms-dos poniendo en el directorio donde se encuentran los dos "flex nombre_archivo.txt", flex crea un archivo .c que debes compilar con dev-c++ por ejemplo y te generara un ejecutable al que debes pasarle por parametro un fichero de entrada con lo que quieres encriptar y un fichero de salida encriptado. Si tienes alguna duda, mandame un privado.  :smartass:

fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: Encriptar Archivos De Cualquier Tipo
« Respuesta #2 en: Viernes 1 de Septiembre de 2006, 00:33 »
0
Hola, que tal

Para poder ayudarte, creo que sería ueno que menciones la forma en que estas haciendo tu progama, ya que tal ves el error este en tu pogama o en la forma de leer el archivo.

Hasta luego.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Encriptar Archivos De Cualquier Tipo
« Respuesta #3 en: Viernes 1 de Septiembre de 2006, 14:44 »
0
Cita de: "sansoto5000"
o sea cambiar los 1 (unos) a 0 (ceros) y viceversa....pero tengo un problema....NO ME SALE!  :blink: ...
 
¿Qué es lo que no te sale?

Algo muy sencillo sería leer un archivo byte a byte, a cada byte leído hacerle una operación lógica (xor, por ejemplo), y ese byte modificado irlo guardando en otro archivo.

Como dice fuhrer, explica un poco más cómo estás tratando de trabajar :).

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

sansoto5000

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Encriptar Archivos De Cualquier Tipo
« Respuesta #4 en: Miércoles 6 de Septiembre de 2006, 21:48 »
0
Gracias a todos por su respuesta disculpen haberme expresado mal en mi problema...

como dice Geo yo quisiera hacer una operacion logica sobre los archivos leyendolos byte por byte....yo utilize el metodo de negación ,ya logre hacerlo de esa manera....ahora estoy intentando hacerlo con XOR y me encuentro con un nuevo problema....si alguien seria tan amable de mostrarme como seria esta operacion logica XOR estaria muy agradecido.

Desde ya gracias por ayudarme!  :comp:

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Encriptar Archivos De Cualquier Tipo
« Respuesta #5 en: Miércoles 6 de Septiembre de 2006, 23:15 »
0
Cita de: "sansoto5000"
ahora estoy intentando hacerlo con XOR y me encuentro con un nuevo problema....
Esteee, ¿cuál es el problema :P?

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip