Using C language , Write code that encrypts and decrypts messages in a manner th
ID: 3707385 • Letter: U
Question
Using C language, Write code that encrypts and decrypts messages in a manner that is similar to the Nazi enigma machine.
Your program should take in 4 command line arguments. The first 3 input arguments should set the positions of each rotor. The rotors act like a secret passcode. The same passcode (rotor positions) are needed for encrypting and decrypting the message. The last input argument should set to either ‘e’ or ‘d’. The value e stands for encrypt and d stands for decrypt.
Basically, you have to fill the " TO DO" spaces of the following given code :
Explanation / Answer
#include<stdio.h>
int main() {
char *message,*emessage,*dmessage;
int i,j=0,k,key,temp;
clrscr();
printf(" Enter the key ");
scanf("%d",&key);
key=key%26;
printf(" Enter message ");
fflush(stdin);
gets(message);
for (i=0;message[i]!=NULL;i++)
message[i]=tolower(message[i]);
for (i=0;message[i]!=NULL;i++) {
//printf("%c ",message[i]);
if(message[i]==' ')
emessage[j++]=message[i]; else {
if(message[i]>=48 && message[i]<=57) {
temp=message[i]+key;
if(temp>57)
emessage[j++]=48+(temp-58); else
emessage[j++]=temp;
} else {
if(message[i]>=97 && message[i]<=123) {
temp=message[i]+key;
if(temp>122)
emessage[j++]=97+(temp-123); else
emessage[j++]=temp;
} else
emessage[j++]=message[i];
}
// printf("%c ",emessage[j]);
}
}
emessage[j]='';
printf(" Encrypted message is ");
for (i=0;emessage[i]!=NULL;i++)
printf("%c",emessage[i]);
// printf(" end");
for (i=0,j=0;emessage[i]!=NULL;i++) {
if(emessage[i]==' ')
dmessage[j++]=emessage[i]; else {
if(emessage[i]>=48 && emessage[i]<=57) {
temp=emessage[i]-key;
if(temp<48)
dmessage[j++]=58-(48-temp); else
dmessage[j++]=temp;
} else {
if(emessage[i]>=97 && emessage[i]<=123) {
temp=emessage[i]-key;
if(temp<97)
dmessage[j++]=123-(97-temp); else
dmessage[j++]=temp;
} else
dmessage[j++]=emessage[i];
}
}
}
dmessage[j]='';
printf(" Retrieved message is ");
for (i=0;dmessage[i]!=NULL;i++)
printf("%c",dmessage[i]);
getch();
return(0);
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.