[C] Simple Implementacion del cifrado Julio César

  • 0 Respuestas
  • 2596 Vistas

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

Desconectado S[e]C

  • *
  • Underc0der
  • Mensajes: 42
  • Actividad:
    0%
  • Reputación 0
  • I am mine.
    • Ver Perfil
    • Undersecurity

[C] Simple Implementacion del cifrado Julio César

  • en: Abril 01, 2010, 09:35:14 pm
Cita de: S[e]C
En criptografía, un cifrado César, también conocido como cifrado por desplazamiento, es una de las técnicas de codificación más simples y más usadas. Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra tres posiciones más adelante en el alfabeto. Por ejemplo, la A sería sustituida por la D (situada 3 lugares a la derecha de la A ), la B sería reemplazada por la E, etc. Este método debe su nombre a Julio César, que lo usaba para comunicarse con sus generales.
El cifrado César muchas veces es parte componente de sistemas más complejos de codificación, como el cifrado Vigenère, e incluso tiene aplicación en el sistema ROT13.

Fuente


Nota:
Como dice wikipedia el cifrado César es del tipo de cifrados por desplazamiento ( los mas simple jeje), en este caso yo lo eh implementado con un desplazamiento de tres posiciones, si se desea cambiar esto debe modificarse directamente la cadena cifrado y realizar el dezplazamiento deseado.

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.   fprintf(stdout,"Ingrese texto a cifrar\t:\n");
  19.   fscanf(stdin,"%s",cadena);
  20.   res=cifra(cadena);
  21.   fprintf(stdout,"\nLa cadena Cifrada es\t:%s\n\n",res);
  22.   res=descifra(res);
  23.   fprintf(stdout,"La cadena Desifrada es\t:%s",res);
  24.   getchar();
  25.   getchar();
  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<strlen(text);j++)
  34.     {
  35.       for(i=0;i<strlen(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<strlen(text);j++)
  51.     {
  52.       for(i=0;i<strlen(alfabeto);i++)
  53.       {
  54.          if((*(text+j))==*(cifrado+i))
  55.          {
  56.          *(text+j)=*(alfabeto+i);
  57.          }
  58.       }
  59.     }
  60.     return text;
  61. }
  62.  
  63.  
« Última modificación: Febrero 08, 2014, 06:12:49 pm por Expermicid »

 

[C] Code/Decode Cifrado Garbo

Iniciado por S[e]C

Respuestas: 3
Vistas: 3779
Último mensaje Junio 25, 2010, 12:49:52 pm
por rabulu
Un simple generador de contraseñas por darkbouser

Iniciado por darkbouser

Respuestas: 0
Vistas: 2976
Último mensaje Noviembre 28, 2013, 03:24:58 am
por darkbouser
Simple Shell Remota

Iniciado por Juan

Respuestas: 1
Vistas: 3032
Último mensaje Mayo 06, 2011, 12:07:46 pm
por mr.blood
[C] Irc-Bot Simple

Iniciado por Jhonjhon_123

Respuestas: 0
Vistas: 2144
Último mensaje Febrero 23, 2010, 07:34:10 pm
por Jhonjhon_123