ROT 13 Program in JAVA
ROT 13 means ROTATE 13. It is an Encryption Scheme which works by cyclic shifting of each Lower Case and Upper Case letter 13 position.
Example :-
Input - Encryption
Output - Rapelcgvba
Algorithm and Program :-
Algorithm :-
Logic - Divide total alphabets into 2 halves i.e. first half is A-M and Second half is N-Z. ( Same for lower case also).
Step 1 - Input a word in a variable and find its length.
Step 2 - Extract each character and convert it into its ASCII code.
Step 3 - If the character is in the first half then increment the value of ASCII code by 13. If the character is in the second half then decrease the value of ASCII code by 13.
Step 4 - convert the new ASCII code into character in a new variable.
Step 5 - Store the new character in new string variable. (Say this word is Encrypted word) Step 6 - Display both Original and Encrypted word.
Program :-
import java.io.*; import java.util.*; class Encrypt { public static void main(String args[]) { Scanner in= new Scanner(System.in); String str,str1= ""; // string variables to store words char ch,ch1; // character variables int i,y,l; // 'i' for loop , 'y' to convert letter into integer System.out.println("Enter Message"); str= in.nextLine(); // storing original word l= str.length(); // storing length of the word for(i=0;i<l;i++) { ch= str.charAt(i); // extracting character of the string y = (int) ch; // converting character into its ASCII code if(y>=65&&y<78) // ASCII Code between "A - M" { y= y+13; // Increasing the letter by 13 ch1= (char)y; // converting new ASCII code to Character str1= str1+ch1; // Storing new Character in new string } else if(y>=78&&y<91) // ASCII Code between "N - Z" { y= y-13; // Decreasing the letter by 13 ch1= (char)y; // converting new ASCII code to Character str1= str1+ch1; // Storing new Character in new string } else if(y>=97&&y<110) // ASCII Code between "a - m" { y= y+13; // Increasing the letter by 13 ch1= (char)y; // converting new ASCII code to Character str1= str1+ch1; // Storing new Character in new string } else if(y>=110&&y<123) { y= y-13; // Decreasing the letter by 13 ch1= (char)y; // converting new ASCII code to Character str1= str1+ch1; // Storing new Character in new string } } System.out.println("Original Message : " +str); // Printing Original String System.out.println("Encrypted Message : " +str1); // Printing Encrypted String } // End of Main } // End of Class
Note : If you face any problem in understanding this program than feel free to contact/comment.
All the Best :)
Keep Learning :)
Comments