Program to encode and decode ( cipher )
#include<stdio.h> #include<conio.h> // Linux user - Remove this int main() { // Declaring variable for pt=plaint text, ct=cipher text char pt[20],ct[20]; int l=0,i,j,k=0; int kl,key[20]; printf("%d",(-27%26)); printf("Enter string:"); gets(pt); while(pt[l]!='\0') l++; printf("Enter key length:"); scanf("%d",&kl); printf("Enter key:"); for(i=0;i<kl;i++) { scanf("%d",&key[i]); } if(kl!=l) { for(i=kl;i<l;i++) { if(k==kl) { k=k-kl; key[i]=key[k]; k++; } else { key[i]=key[k]; k++; } } } printf("Key Sequence: "); for(i=0;i<l;i++) { printf("%d ",key[i]); } // Encrypting for(i=0;i<l;i++) { // For small letter if(pt[i]>=97 && pt[i]<=122) ct[i]=(((pt[i]-97)+key[i])%26)+97; // For capital letter else if(pt[i]>=65 && pt[i]<=90) ct[i]=(((pt[i]-65)+key[i])%26)+65; // For digits else if(pt[i]>=48 && pt[i]<=57) ct[i]=(((pt[i]-48)+key[i])%10)+48; // For special Charactrer else if(pt[i]>=33 && pt[i]<=47) ct[i]=(((pt[i]-33)+key[i])%15)+33; else if(pt[i]>=58 && pt[i]<=64) ct[i]=(((pt[i]-58)+key[i])%7)+58; else if(pt[i]>=91 && pt[i]<=96) ct[i]=(((pt[i]-91)+key[i])%6)+91; else if(pt[i]>=123 && pt[i]<=126) ct[i]=(((pt[i]-123)+key[i])%4)+123; // For space else if(pt[i]==' ') ct[i]=pt[i]+127+key[i]; } printf("\nEncrypted data: "); for(i=0;i<l;i++) { printf("%c",ct[i]); } // Decrypting for(i=0;i<l;i++) { // For small letter if(ct[i]>=97 && ct[i]<=122) { if((((ct[i]-97)-key[i])%26)<0) pt[i]=ct[i]-key[i]+26; else pt[i]=(((ct[i]-97)-key[i])%26)+97; } // For capital letter else if(ct[i]>=65 && pt[i]<=90) { if((((ct[i]-65)-key[i])%26)<0) pt[i]=ct[i]-key[i]+26; else pt[i]=(((ct[i]-65)-key[i])%26)+65; } // For digits else if(ct[i]>=48 && pt[i]<=57) { if((((ct[i]-48)-key[i])%10)<0) pt[i]=ct[i]-key[i]+10; else pt[i]=(((ct[i]-48)-key[i])%10)+48; } // For special character else if(ct[i]>=33 && pt[i]<=47) { if((((ct[i]-33)-key[i])%15)<0) pt[i]=ct[i]-key[i]+15; else pt[i]=(((ct[i]-33)-key[i])%15)+33; } else if(ct[i]>=58 && pt[i]<=64) { if((((ct[i]-58)-key[i])%7)<0) pt[i]=ct[i]-key[i]+7; else pt[i]=(((ct[i]-58)-key[i])%7)+58; } else if(ct[i]>=91 && pt[i]<=96) { if((((ct[i]-91)-key[i])%6)<0) pt[i]=ct[i]-key[i]+6; else pt[i]=(((ct[i]-91)-key[i])%6)+91; } else if(ct[i]>=123 && pt[i]<=126) { if((((ct[i]-123)-key[i])%4)<0) pt[i]=ct[i]-key[i]+4; else pt[i]=(((ct[i]-123)-key[i])%4)+123; } // For space else pt[i]=ct[i]-127-key[i]; } printf("\nActual Data: "); for(i=0;i<l;i++) { printf("%c",pt[i]); } getch(); // Linux user - Remove this return 0; }