Caesar cipher is one of the earliest known and simplest ciphers. It is a type of replacement cipher in which each letter of the plaintext is ‘moved’ to a certain place under the alphabet.
For example, with a shift of 1, A will be replaced by B, B becomes C, and so on.
The name of this method is named after Julius Caesar, who apparently used it to communicate with his generals.
Caesar Cipher Program in Java
- Caesar Cipher Encryption in Java
import java.util.Scanner; public class CaesarCipherEncryption { public static void main(String args[]) { String plaintext, encrypted_Message = ""; int key; char alphabet; Scanner sc = new Scanner(System.in); System.out.println("Enter a Plaintext you want to encrypt: "); plaintext = sc.nextLine(); System.out.println("Enter encrypted key: "); key = sc.nextInt(); for(int i = 0; i < plaintext.length(); i++){ alphabet = plaintext.charAt(i); if(alphabet >= 'a' && alphabet <= 'z'){ alphabet = (char)(alphabet + key); if(alphabet > 'z'){ alphabet = (char)(alphabet - 'z' + 'a' - 1); } encrypted_Message += alphabet; } else if(alphabet >= 'A' && alphabet <= 'Z'){ alphabet = (char)(alphabet + key); if(alphabet > 'Z') { alphabet = (char)(alphabet - 'Z' + 'A' - 1); } encrypted_Message += alphabet; } else { encrypted_Message += alphabet; } } System.out.println("Encrypted Message is : = " + encrypted_Message); } }
After execution of above program you will get the output like below:-
Example:- If you run above program then it will ask to enter the message to encrypt like below:-
Enter a message to encrypt:
walmart.com
Enter the key: –for encrypt your message
5
Encrypted Message is : = bfqrfwy.htr
Enter a message to encrypt:
amazon river
Enter the key: –for encrypt your message
5
Encrypted Message is : = frfets wnajw
- Caesar Cipher Decryption in Java
import java.util.*; public class CaesarCipherDecryption { public static void main(String...s){ String ciphertext, decrypted_Message = ""; int key; char alphabet; Scanner sc = new Scanner(System.in); System.out.println("Enter a encrypted message you want to decrypt: "); ciphertext = sc.nextLine(); System.out.println("Enter decryption key: "); key = sc.nextInt(); for(int i = 0; i < ciphertext .length(); ++i){ alphabet = ciphertext .charAt(i); if(alphabet >= 'a' && alphabet <= 'z'){ alphabet = (char)(alphabet - key); if(alphabet < 'a'){ alphabet = (char)(alphabet + 'z' - 'a' + 1); } decrypted_Message += alphabet; } else if(alphabet >= 'A' && alphabet <= 'Z'){ alphabet = (char)(alphabet - key); if(alphabet < 'A'){ alphabet = (char)(alphabet + 'Z' - 'A' + 1); } decrypted_Message += alphabet; } else { decrypted_Message += alphabet; } } System.out.println("Decrypted Message is : = " + decrypted_Message); } }
After execution of above program you will get the output like below:-
Example:- If you run above program then it will ask to enter the message to decrypt like below:-
Enter a message to decrypt:
bfqrfwy.htr
Enter key: –for decrypt your message
5
Decrypted Message : = walmart.com
Enter a message to decrypt:
frfets wnajw
Enter key: –for decrypt your message
5
Decrypted Message : = amazon river