tsnaik

NIS Lab1

Dec 22nd, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.25 KB | None | 0 0
  1. //Caeser Cipher
  2.  
  3. #include<stdio.h>
  4.  
  5. char* encrypt(char* PT, int key);
  6. char* decrypt(char* CT, int key);
  7.  
  8.  
  9. int main()
  10. {
  11.     char text[26]="abcdefghijklmnopqrstuvwxyz";
  12.     char PT[50], CT[50];
  13.     int key;
  14.     printf("\nEnter PT: ");
  15.     scanf("%s",&PT);
  16.    
  17.     printf("\nEnter Key: ");
  18.     scanf("%d",&key);
  19.    
  20.     printf("%s",encrypt(PT,key));
  21.    
  22.    
  23.    
  24.     printf("\nEnter CT: ");
  25.     scanf("%s",&CT);
  26.    
  27.     printf("\nEnter Key: ");
  28.     scanf("%d",&key);
  29.    
  30.     printf("%s",decrypt(CT,key));
  31.     int i;
  32.    
  33.     printf("\nEnter CT: ");
  34.     scanf("%s",&CT);
  35.    
  36.     for(i=0;i<26;i++)
  37.     {
  38.         printf("%d - %s\n",i,decrypt(CT,i));
  39.        
  40.     }
  41.    
  42.     return 0;
  43. }
  44.  
  45. char* encrypt(char* PT, int key)
  46. {
  47.     char text[26]="abcdefghijklmnopqrstuvwxyz";
  48.     char CT[50];
  49.    
  50.     int i,j,k;
  51.    
  52.     for(i=0;PT[i]!='\0';i++)
  53.     {
  54.         for(j=0;j<26;j++)
  55.         {
  56.             if(PT[i]==text[j])
  57.             {
  58.                 break;
  59.             }
  60.         }
  61.         k=((j+key)%26);
  62.         CT[i]=text[k];
  63.     }
  64.     CT[i] = '\0';
  65.     return CT;
  66. }
  67.  
  68.  
  69. char* decrypt(char* CT, int key)
  70. {
  71.     char text[26]="abcdefghijklmnopqrstuvwxyz";
  72.     char PT[50];
  73.    
  74.     int i,j,k,l;
  75.    
  76.     for(i=0;CT[i] != '\0';i++)
  77.     {
  78.         for(j=0;j<26;j++)
  79.         {
  80.             if(CT[i]==text[j])
  81.             {
  82.                 break;
  83.             }
  84.         }
  85.         k=(j-key);
  86.         if(k<0)
  87.         {
  88.             k +=26;
  89.            
  90.         }
  91.         l=k%26;
  92.         PT[i]=text[l];
  93.     }
  94.     PT[i] = '\0';
  95.     return PT;
  96. }
Add Comment
Please, Sign In to add comment