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