Get program for caesar cipher in C and C++ for encryption and decryption.
What is Caesar Cipher?
It is one of the simplest encryption technique in which each character in plain text is replaced by a character some fixed number of positions down to it.
For example, if key is 3 then we have to replace character by another character that is 3 position down to it. Like A will be replaced by D, C will be replaced by F and so on.
For decryption just follow the reverse of encryption process.
Below I have shared program to implement caesar cipher in C and C++.
Program for Caesar Cipher in C
Encryption
#include<stdio.h> int main() { char message[100], ch; int i, key; printf("Enter a message to encrypt: "); gets(message); printf("Enter key: "); scanf("%d", &key); for(i = 0; message[i] != '\0'; ++i){ ch = message[i]; if(ch >= 'a' && ch <= 'z'){ ch = ch + key; if(ch > 'z'){ ch = ch - 'z' + 'a' - 1; } message[i] = ch; } else if(ch >= 'A' && ch <= 'Z'){ ch = ch + key; if(ch > 'Z'){ ch = ch - 'Z' + 'A' - 1; } message[i] = ch; } } printf("Encrypted message: %s", message); return 0; }
Output
Enter a message to encrypt: axzd
Enter key: 4
Encrypted message: ebdh
Decryption
#include<stdio.h> int main() { char message[100], ch; int i, key; printf("Enter a message to decrypt: "); gets(message); printf("Enter key: "); scanf("%d", &key); for(i = 0; message[i] != '\0'; ++i){ ch = message[i]; if(ch >= 'a' && ch <= 'z'){ ch = ch - key; if(ch < 'a'){ ch = ch + 'z' - 'a' + 1; } message[i] = ch; } else if(ch >= 'A' && ch <= 'Z'){ ch = ch - key; if(ch < 'A'){ ch = ch + 'Z' - 'A' + 1; } message[i] = ch; } } printf("Decrypted message: %s", message); return 0; }
Output
Enter a message to decrypt: ebdh
Enter key: 4
Decrypted message: axzd
Program for Caesar Cipher in C++
Encryption
#include<iostream> using namespace std; int main() { char message[100], ch; int i, key; cout << "Enter a message to encrypt: "; cin.getline(message, 100); cout << "Enter key: "; cin >> key; for(i = 0; message[i] != '\0'; ++i){ ch = message[i]; if(ch >= 'a' && ch <= 'z'){ ch = ch + key; if(ch > 'z'){ ch = ch - 'z' + 'a' - 1; } message[i] = ch; } else if(ch >= 'A' && ch <= 'Z'){ ch = ch + key; if(ch > 'Z'){ ch = ch - 'Z' + 'A' - 1; } message[i] = ch; } } cout << "Encrypted message: " << message; return 0; }
Output
Enter a message to encrypt: asd zf
Enter key: 3
Encrypted message: dvg ci
Decryption
#include<iostream> using namespace std; int main() { char message[100], ch; int i, key; cout << "Enter a message to decrypt: "; cin.getline(message, 100); cout << "Enter key: "; cin >> key; for(i = 0; message[i] != '\0'; ++i){ ch = message[i]; if(ch >= 'a' && ch <= 'z'){ ch = ch - key; if(ch < 'a'){ ch = ch + 'z' - 'a' + 1; } message[i] = ch; } else if(ch >= 'A' && ch <= 'Z'){ ch = ch - key; if(ch > 'a'){ ch = ch + 'Z' - 'A' + 1; } message[i] = ch; } } cout << "Decrypted message: " << message; return 0; }
Output
Enter a message to decrypt: az GjK
Enter key: 2
Decrypted message: yx EhI
Comment below if you have doubts or found anything incorrect in above program for caesar cipher in C and C++.
The post Caesar Cipher in C and C++ [Encryption & Decryption] appeared first on The Crazy Programmer.