Caesar Cipher Java Program ISC 2017

Caesar Cipher is an encryption technique which is implemented as ROT13 (‘rotate by 13 places’). It is a simple letter substitution cipher that replaces a letter with the letter 13 places after it in the alphabets, with the other characters remaining unchanged.

ROT13

A/aB/bC/cD/dE/eF/fG/gH/hI/iJ/jK/kL/lM/m
N/nO/oP/pQ/qR/rS/sT/tU/uV/vW/wX/xY/yZ/z

Write a program to accept a plain text of length L, where L must be greater than 3 and less than 100.

Encrypt the text if valid as per the Caesar Cipher.

Test your program with the sample data and some random data.

Example 1:
INPUT:
Hello! How are you?
OUTPUT:
The cipher text is:
Uryyb! Ubj ner lbh?

Example 2:
INPUT:
Encryption helps to secure data.
OUTPUT:
The cipher text is:
Rapelcgvba urycf gb frpher qngn.

Example 3:
INPUT:
You
OUTPUT:
INVALID LENGTH

import java.io.*;
class Caesar{
    public static void main(String args[])
    throws IOException{
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(in);
        System.out.print("Enter text: ");
        String text = br.readLine();
        int len = text.length();
        if(len < 4 || len > 99){
            System.out.println("INVALID LENGTH");
            return;
        }
        String cipher = "";
        for(int i = 0; i < len; i++){
            char ch = text.charAt(i);
            if(Character.isLetter(ch)){
                if(Character.isUpperCase(ch)){
                    if(ch > 'M')
                        cipher += (char)(ch - 13);
                    else
                        cipher += (char)(ch + 13);
                }
                else{
                    if(ch > 'm')
                        cipher += (char)(ch - 13);
                    else
                        cipher += (char)(ch + 13);
                }
            }
            else
                cipher += ch;
        }
        System.out.println("The cipher text is:\n" + cipher);
    }
}

Leave a Reply

%d bloggers like this: