comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Ayuda con un programa en C

  • 10 Respuestas
  • 3304 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

wearecarl

  • *
  • Visitante
« en: Mayo 14, 2013, 10:06:02 am »
Hola amigos de underc0de ! Me encanta esta comunidad, aunque soy nuevo, pero aprenderé poco a poco los temas que aqui se debaten.

Como nuevo y primer tema, tengo una serie de problemas con un directorio telefonico que debo realizar en C, sobre algo que me mandaron, y no entiendo que debo hacer en ciertas cosas que me pide el planteamiento que debo hacer.

Primero. El planteamiento del programa es el siguiente

directorio telefónico, un directorio telefónico debe constar de al menos los siguientes campos:
Nombre
Apellido
Organización
Teléfonos: Casa, Trabajo, Móvil.
Email
Cualquiera de los campos puede ser nulo, en nuestro caso se pueden realizar búsqueda por nombre, apellido, empresa.
Entre las facilidades que se deben implementar se tienen:
 El acceso al directorio debe estar protegido por una clave.
 Se pueden clasificar y filtrar las entradas del directorio en categorías: todos, personales, trabajo.
 Se deben poder mostrar los registros ordenados por Nombre, Apellidos o por Organización
 Se debe ser capaz de guardar el contenido del directorio encriptado en disco
 Ser pueden realizar búsquedas, mostrando solo los registros que tengan la cadena de caracteres de búsqueda como parte los campos: Nombre, Apellido y Organización.

Debo realizar el programa para ejecutarlo en una Shell de comando en Linux, mas especificamente, Debian 6.

Ahora bien, este es mi codigo o lo que llevo hecho:

Código: C
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5. struct datos{
  6.      //char nombre[20];
  7.      //long telno;
  8.      char nombre[20]; //Categoria tambien
  9.      char apellido[20];
  10.      char organizacion[20];
  11.      char email[20];
  12.      int   casa;
  13.      int   trabajo; //Forma parte de categoria
  14.      int   movil;
  15.      int   categoria;
  16. };
  17.  
  18. void ingresar_data(){
  19.       FILE *fp;
  20.       struct datos obj;
  21.    No tienes permisos para ver links. Registrate o Entra con tu cuenta("cls");
  22.       fp=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos.txt","a");
  23.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("*****Agregar datos****\n");
  24.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("Ingrese Nombre : ");
  25.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s",obj.nombre);
  26.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("Ingrese Apellido : ");
  27.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s",obj.apellido);
  28.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("Ingrese Organizacion : ");
  29.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s",obj.organizacion);
  30.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("Ingrese Email : ");
  31.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s",obj.email);
  32.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("Ingrese telefono: ");
  33.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%d",&obj.movil);
  34.       do{
  35.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\nIngrese Categoria :\n 1. Todos \n 2. Personal \n 3. Trabajo ");
  36.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%d",obj.categoria);
  37.       }while(obj.categoria <= 0 && obj.categoria >= 4);
  38.  
  39.  
  40.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp,"%20s %20s %20s %20s %32d %32d",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,obj.categoria);
  41.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp);
  42. }
  43.  
  44. void  MostrarTodo(){ //Esto es una categoria
  45.       FILE *fp;
  46.       struct datos obj;
  47.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("cls");
  48.       fp=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos.txt","r");
  49.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("*****Mostrando todos los registros*****\n");
  50.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\n\t\tNombre\t\t\tApellido\t\tOrganizacion\t\temail\t\tMovil\t\tCategoria");
  51.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\t\t=====\t\t\t===============\t\t\t============\t\t\t===========\t\t\t===========\t\t\t===========\t\t\t===========\n\n");
  52.       while(!No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp))
  53.       {
  54.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp,"%20s %20s %20s %20s %32d %32d",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,&obj.categoria);
  55.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%20s %20s %20s %20s %32d %32d\n",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,obj.categoria);
  56.       }
  57.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp);
  58.       No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  59. }
  60.  
  61. void  personales(){ //Esto es una categoria
  62.       FILE *fp;
  63.       struct datos obj;
  64.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("cls");
  65.       fp=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos.txt","r");
  66.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("*****Mostrando registros por categoria personal*****\n");
  67.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\n\t\tNombre\t\t\tApellido\t\tOrganizacion\t\temail\t\tMovil");
  68.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\t\t=====\t\t\t===============\t\t\t============\t\t\t===========\t\t\t===========\t\t\t===========\n\n");
  69.       while(!No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp))
  70.       {
  71.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp,"%20s %20s %20s %20s %32d %32d",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,&obj.categoria);
  72.       if (obj.categoria == 2)
  73.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%20s %20s %20s %20s %32d %32d\n",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil);
  74.       }
  75.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp);
  76.       No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  77. }
  78.  
  79. void  trabajo(){ //Esto es una categoria
  80.       FILE *fp;
  81.       struct datos obj;
  82.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("cls");
  83.       fp=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos.txt","r");
  84.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("*****Mostrando registros por categoria personal*****\n");
  85.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\n\t\tNombre\t\t\tApellido\t\tOrganizacion\t\temail\t\tMovil");
  86.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\t\t=====\t\t\t===============\t\t\t============\t\t\t===========\t\t\t===========\t\t\t===========\n\n");
  87.       while(!No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp))
  88.       {
  89.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp,"%20s %20s %20s %20s %32d %32d",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,&obj.categoria);
  90.       if (obj.categoria == 3)
  91.       No tienes permisos para ver links. Registrate o Entra con tu cuenta("%20s %20s %20s %20s %32d %32d\n",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil);
  92.       }
  93.       No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp);
  94.       No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  95. }
  96.  
  97. /*void findData(){
  98.       FILE *fp;
  99.       struct datos obj;
  100.       char name[20];
  101.       int totrec=0;
  102.      system("cls");
  103.       fp=fopen("data.txt","r");
  104.       printf("*****Display Specific Records*****\n");
  105.       printf("\nEnter Name : ");
  106.       scanf("%s",&name);
  107.       while(!feof(fp))
  108.       {
  109.       fscanf(fp,"%20s %7ld",obj.name,&obj.telno);
  110.          if(strcmpi(obj.name,name)==0){
  111.         printf("\n\nName   :  %s",obj.name);
  112.         printf("\nTelephone No : %ld",obj.telno);
  113.         totrec++;
  114.          }
  115.       }
  116.       if(totrec==0)
  117.          printf("\n\n\nNo Data Found");
  118.       else
  119.          printf("\n\n===Total %d Record found===",totrec);
  120.       fclose(fp);
  121.       getch();
  122. }*/
  123.  
  124.  
  125.  
  126. void main(){
  127.       char choice;
  128.       while(1){
  129.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("cls");
  130.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("*****DIRECTORIO TELEFONICO*****\n\n");
  131.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("1) Ingresar datos\n");
  132.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("2) Mostrar por categoria\n");
  133.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("3) Mostrar registros ordenados\n");
  134.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("4) Guardar contenido encriptado\n");
  135.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("5) Buscar\n");
  136.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("6) salir\n");
  137.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("\nOpcion: ");
  138.     No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdin);
  139.     choice = getche();
  140.     switch(choice){
  141.          case'1' : //call append record
  142.             ingresar_data();
  143.             break;
  144.          case'2' : //call find record
  145.              No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\n1) Todos\n");
  146.              No tienes permisos para ver links. Registrate o Entra con tu cuenta("2) Personales\n");
  147.              No tienes permisos para ver links. Registrate o Entra con tu cuenta("3) Trabajo\n");
  148.              int opc=0;
  149.              No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdin);
  150.              No tienes permisos para ver links. Registrate o Entra con tu cuenta("%d",opc);
  151.              if (opc == 1)
  152.              {
  153.                 MostrarTodo();
  154.  
  155.              }else if (opc == 2){
  156.  
  157.                      trabajo();
  158.  
  159.                     } else if (opc == 3){
  160.  
  161.                              trabajo();
  162.  
  163.                             }
  164.             break;
  165.          //case'3' : //Read all record
  166.             //RegistrosOrdenados();
  167.            // break;
  168.  
  169.         // case'4' :
  170.  
  171.             // GuardarEncriptado();
  172.             // break;
  173.  
  174.        // case'5' :
  175.  
  176.              // Buscar();
  177.              // break;
  178.  
  179.          case '6'  :
  180.  
  181.              No tienes permisos para ver links. Registrate o Entra con tu cuenta(1);
  182.              break;
  183.  
  184.          default:
  185.             No tienes permisos para ver links. Registrate o Entra con tu cuenta("Debe ingresar una opcion valida.");
  186.  
  187.     }
  188.       }
  189. }
  190.  
  191.  

Que me falta? Pues, me falta es esto, que no entiendo como debo hacer, a ver si me podian ayudar a implementarlo en mi codigo :

1. Ser pueden realizar búsquedas, mostrando solo los registros que tengan la cadena de caracteres de búsqueda como parte los campos: Nombre, Apellido y Organización.

y

2. Se debe ser capaz de guardar el contenido del directorio encriptado en disco
« Última modificación: Febrero 08, 2014, 04:51:42 pm por Expermicid »

Marcado como mejor respuesta por: en Septiembre 23, 2018, 08:32:29 am

Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Mayo 14, 2013, 12:10:02 pm »
Para hacer la busqueda seria algo asi


Código: C
  1. FILE *fp;      
  2. struct datos obj;      
  3. No tienes permisos para ver links. Registrate o Entra con tu cuenta("cls");      
  4. fp=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos.txt","r");
  5. char buscar[20];  
  6. No tienes permisos para ver links. Registrate o Entra con tu cuenta("*****Buscar datos*****\n");
  7. No tienes permisos para ver links. Registrate o Entra con tu cuenta("Ingresa la palabra Clave a buscar");
  8. No tienes permisos para ver links. Registrate o Entra con tu cuenta("%d",&buscar);
  9. No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\n\t\tNombre\t\t\tApellido\t\tOrganizacion\t\temail\t\tMovil\t\tCategoria");      No tienes permisos para ver links. Registrate o Entra con tu cuenta("\n\t\t=====\t\t\t===============\t\t\t============\t\t\t===========\t\t\t===========\t\t\t===========\t\t\t===========\n\n");
  10. while(!No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp))      
  11. {
  12.     No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp,"%20s %20s %20s %20s %32d %32d",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,&obj.categoria);
  13.     if(No tienes permisos para ver links. Registrate o Entra con tu cuenta(obj.nombre, buscar) == 0 || No tienes permisos para ver links. Registrate o Entra con tu cuenta(obj.apellido, buscar) == 0 || No tienes permisos para ver links. Registrate o Entra con tu cuenta(obj.organizacion, buscar) == 0)
  14.     {
  15.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("%20s %20s %20s %20s %32d %32d\n",obj.nombre,obj.apellido,obj.organizacion,obj.email,obj.movil,obj.categoria);      
  16.     }
  17. }      
  18. No tienes permisos para ver links. Registrate o Entra con tu cuenta(fp);    
  19.  No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  20.  


Ahora lo de guardar de forma encriptada puedes hacer que a la hora de leer los datos despues los cifres con algun algoritmo sencillo como el cifrado cesar, y luego igualmente cuando lees el archivo para descrifrarlo pues lo descifras con el mismo algoritmo de cesar.


--------------------




Ahora respecto a que dices que el programa debe correr en linux, debes de saber que system("cls"); es solo para windows asi que cando lo vayas a pasar a linux debes usar system("clear");

wearecarl

  • *
  • Visitante
« Respuesta #2 en: Mayo 14, 2013, 02:39:19 pm »
Gracias por la respuesta, pero no he visto el algoritmo de cesar, y claro, solo que lo estaba probando en windows, para ver que me salia, ya que me resulta mas comodo programar y trabajr en windows que en linux (debian).. Pero bueno, cualquier cosa aviso por aca, aunque si me pudieses decir mas o menos como es ese algoritmo o como funciona te lo agradeceria mucho

Gracias!

Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Mayo 14, 2013, 03:28:03 pm »
Aqui encuentrasinfo sobre como funciona el cifrado cesar y pues algo de historia:
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Y aqui un ejemplode uso:
Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4.  
  5. // cadenas referenciadoras para el mensaje original y cifrado
  6. char *alfabeto="abcdefghijklmnñopqrstuvwxyz";
  7. char *cifrado ="DEFGHIJKLMNÑOPQRSTUVWXYZABC";
  8.  
  9. //Prototipo de funciones para cifrar y decibrar el texto
  10. char* cifra(char*);
  11. char* descifra(char*);
  12.  
  13. //Funcion principal para probar el uso de las funciones
  14. int main(void)
  15. {
  16.   char cadena[300];
  17.   char *res;
  18.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdout,"Ingrese texto a cifrar\t:\n");
  19.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdin,"%s",cadena);
  20.   res=cifra(cadena);
  21.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdout,"\nLa cadena Cifrada es\t:%s\n\n",res);
  22.   res=descifra(res);
  23.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdout,"La cadena Desifrada es\t:%s",res);
  24.   No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  25.   No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  26.   return 0;
  27. }
  28.  
  29. //Funcion que cifra el mensaje
  30. char* cifra(char *text)
  31. {
  32.     int i,j;
  33.     for(j=0;j<No tienes permisos para ver links. Registrate o Entra con tu cuenta(text);j++)
  34.     {
  35.       for(i=0;i<No tienes permisos para ver links. Registrate o Entra con tu cuenta(alfabeto);i++)
  36.       {
  37.          if(*(text+j)==*(alfabeto+i))
  38.          {
  39.          *(text+j)=*(cifrado+i);
  40.          }
  41.       }
  42.     }
  43.     return text;
  44. }
  45.  
  46. //Funcion que descifra el mensaje
  47. char* descifra(char *text)
  48. {
  49.     int i,j;
  50.     for(j=0;j<No tienes permisos para ver links. Registrate o Entra con tu cuenta(text);j++)
  51.     {
  52.       for(i=0;i<No tienes permisos para ver links. Registrate o Entra con tu cuenta(alfabeto);i++)
  53.       {
  54.          if((*(text+j))==*(cifrado+i))
  55.          {
  56.          *(text+j)=*(alfabeto+i);
  57.  
  58.          }
  59.       }
  60.     }
  61.     return text;
  62. }
  63.  

wearecarl

  • *
  • Visitante
« Respuesta #4 en: Mayo 14, 2013, 04:04:29 pm »
Gracias nuevamente, y en que parte de mi codigo puedo implementar eso? Deberia crear una funcion?

Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: red_ink@hotmail.es
« Respuesta #5 en: Mayo 14, 2013, 04:25:24 pm »
Sin animo de ofender s00rk pero me parece que lo hiciste demasiado complicado el ejemplo. Por curiosidad porque usas fprintf y fscanf? Y como recomendacion no uses getchar(); getchar(); limpia el buffer de stdin ;).

Aqui otro, a mi entender, mas sencillo ;).

Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void cifrar(char *cadena);
  5. void descifrar(char *cadena);
  6.  
  7. int main()
  8. {
  9.         char cadena[200];
  10.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto a cifrar>> ");
  11.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("%200[^\n]", cadena);
  12.         cifrar(cadena);
  13.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto cifrado >> %s\n", cadena);
  14.         descifrar(cadena);
  15.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto descifrado >> %s\n", cadena);
  16.         setbuffer(stdin, 0, 0);
  17.         No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  18.         return 0;
  19. }
  20.  
  21. void cifrar(char *cadena)
  22. {
  23.         int i=No tienes permisos para ver links. Registrate o Entra con tu cuenta(cadena)-1;
  24.         for(;i>=0;i--)
  25.                 if(cadena[i]!=' ')
  26.                         cadena[i]+=3;
  27. }
  28. void descifrar(char *cadena)
  29. {
  30.         int i=No tienes permisos para ver links. Registrate o Entra con tu cuenta(cadena)-1;
  31.         for(;i>=0;i--)
  32.                 if(cadena[i]!=' ')
  33.                         cadena[i]-=3;
  34. }
  35.  



Dejo otro codigo mas "completo".

Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void cifrar(char *cadena);
  5. void descifrar(char *cadena);
  6.  
  7. int main()
  8. {
  9.         char cadena[200];
  10.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto a cifrar>> ");
  11.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("%200[^\n]", cadena);
  12.         cifrar(cadena);
  13.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto cifrado >> %s\n", cadena);
  14.         descifrar(cadena);
  15.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto descifrado >> %s\n", cadena);
  16.         setbuffer(stdin, 0, 0);
  17.         No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  18.         return 0;
  19. }
  20.  
  21. void cifrar(char *cadena)
  22. {
  23.         int i=No tienes permisos para ver links. Registrate o Entra con tu cuenta(cadena)-1;
  24.         for(;i>=0;i--)
  25.         {
  26.                 if( (cadena[i]>='a' && cadena[i]<='z') || (cadena[i]>='A' && cadena[i]<='Z'))
  27.                 {
  28.                         if(cadena[i]<'w' || cadena[i]<'W')
  29.                         {
  30.                                 cadena[i]+=3;
  31.                         }
  32.                         else
  33.                         {
  34.                                 cadena[i]-=23;
  35.                         }
  36.                 }
  37.         }
  38. }
  39. void descifrar(char *cadena)
  40. {
  41.         int i=No tienes permisos para ver links. Registrate o Entra con tu cuenta(cadena)-1;
  42.         for(;i>=0;i--)
  43.         {
  44.                 if( (cadena[i]>='a' && cadena[i]<='z') || (cadena[i]>='A' && cadena[i]<='Z'))
  45.                 {
  46.                         if(cadena[i]>'c' || cadena[i]>'c')
  47.                         {
  48.                                 cadena[i]-=3;
  49.                         }
  50.                         else
  51.                         {
  52.                                 cadena[i]+=23;
  53.                         }
  54.                 }
  55.         }
  56. }
  57.  

EDITO: Cambio el codigo para que no encripte los espacios, si solo quieres encriptar letras, cambia el IF ;)

Sa1uDoS
« Última modificación: Mayo 14, 2013, 04:45:52 pm por mr.blood »

wearecarl

  • *
  • Visitante
« Respuesta #6 en: Mayo 14, 2013, 04:30:17 pm »
En realidad si, estaba algo complicado, apenas me inicio en lenguaje C, hay cosas que no he visto aun... Pero sin embargo, a pesar de todo, mr.blood me parecio mas sencillo tu ejemplo, aunque mi pregunta sigue en pie, en donde deberia implementar ese codigo? Me podrian si se puede, a ayudarme a completar lo que falta? Porque creo que todo funciona bien.

Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: red_ink@hotmail.es
« Respuesta #7 en: Mayo 14, 2013, 04:51:46 pm »
Quieres encriptar el contenido en el disco?

Te dejo algo super simple.

Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void cifrar(char *cadena);
  5.  
  6. int main()
  7. {
  8.         char cadena[200];
  9.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto a cifrar>> ");
  10.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("%200[^\n]", cadena);
  11.         cifrar(cadena);
  12.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto cifrado >> %s\n", cadena);
  13.         cifrar(cadena);
  14.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Texto descifrado >> %s\n", cadena);
  15.         setbuffer(stdin, 0, 0);
  16.         No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  17.         return 0;
  18. }
  19.  
  20. void cifrar(char *cadena)
  21. {
  22.         int i=No tienes permisos para ver links. Registrate o Entra con tu cuenta(cadena)-1;
  23.         for(;i>=0;i--)
  24.                 cadena[i]^=2;
  25. }
  26.  

Utiliza el operando XOR que tiene "truco". Si tu haces A xor 2 te quedara C y si luego haces C xor 2 te quedara A de nuevo ;).

Deberias implementar esto justo antes de guardar los datos en el fichero y justo antes de cargar los datos del fichero en memoria ;).



EDITO: Por favor, quita conio.h y en vez de getch() usa getchar().
No uses system("cls") porque entonces solo te funcionara bajo Windows, puedes usar algo como puts("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n..."); y pones \n hasta que la pantalla quede limpia.

Sa1uDoS
« Última modificación: Mayo 14, 2013, 04:57:21 pm por mr.blood »

wearecarl

  • *
  • Visitante
« Respuesta #8 en: Mayo 14, 2013, 10:07:53 pm »
Gracias nuevamente, amigo mr.blood, voy a intentar acomodarlo al codigo a ver que tal sale..! Aunque faltan otras cosas como esta que dice

Se debe ser capaz de guardar el contenido del directorio encriptado en disco

Que esa no la entiendo tampoco a ver si me podias ayudar en esa.

Cualquier cosa escribo en este mismo post, a ver que tal me fué, y volveré a poner el codigo

Desconectado Snifer

  • *
  • Underc0der
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • Snifer@L4b's
    • Ver Perfil
    • Snifer@L4bs
  • Twitter: sniferl4bs
« Respuesta #9 en: Mayo 14, 2013, 10:21:07 pm »
Investiga primero y avanza un poco los chicos ya  te hecharon una mano ahora pon de tu parte el de guardar en disco puede usar un txt como base de datos y guardarlo cifrado .

Regards,
Snifer
No tienes permisos para ver links. Registrate o Entra con tu cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #10 en: Mayo 15, 2013, 02:41:30 am »
hehehehe sorry es que la verdad ese no lo hice yo, simplemente hice un copy and paste sobre el algoritmo, personalmente prefiero hacer uso de cout para mostrar y cin para hacer la lectura y para detener: cin.get();


heheheh
la próxima intentare hacerlo por mi, solo lo hice rápido porque andaba en la uni en clase y pues solo entre un rato vi e intente ayudar rapido antes que el profe llegara a checar xD


Saludos*!

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6305
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1538
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2131
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2678
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 2886
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made