Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Overall Requirements Provide a complete program that performs a simple substitut

ID: 3532739 • Letter: O

Question

Overall Requirements

Provide a complete program that performs a simple substitution cipher. The program should take plain text and a shift value and produce the encrypted text. Then it should take encrypted text and a shift value and produce the plain text once again. A different encrypted text and shift can be entered so make sure to get input.

Example:
EASTER shifted by 3 to left would become HDVWHU
HDVWHU shifted by 3 to right would become EASTER

This is how the early Caesar Cipher worked.

YourNameProg3.java

Provide a main method. It should:

Utilize postfix increment/decrement operations and compound assignment operators for all math. Example: x++ or x+=2.

Mimic the sample session precisely.

Upload your page to the Dropbox.

NOTE: Complete your activity and submit it to the Dropbox.

Total Points

Sample Session:

Please enter text to encrypt
easter
Please enter shift value
3
BXPQBO
Please enter text to decrypt
bxpqbo
Please enter shift value
-3
EASTER
Press any key to continue . . .

Sample Session 2: : (Notice spaces removed from input)

Please enter text to encrypt
This Is A Test
Please enter shift value
3
QEFPFPXQBPQ
Please enter text to decrypt
qefpfpxqbpq
Please enter shift value
-3
THISISATEST
Press any key to continue . . .

Sample Session 3: (Notice the different shift and decrypt value)

Please enter text to encrypt
hello
Please enter shift value
3
EBIIL
Please enter text to decrypt
ebiil
Please enter shift value
5
ZWDDG
Press any key to continue . . .

Overall Requirements

Provide a complete program that performs a simple substitution cipher. The program should take plain text and a shift value and produce the encrypted text. Then it should take encrypted text and a shift value and produce the plain text once again. A different encrypted text and shift can be entered so make sure to get input.

Example:
EASTER shifted by 3 to left would become HDVWHU
HDVWHU shifted by 3 to right would become EASTER

This is how the early Caesar Cipher worked.

YourNameProg3.java

Provide a main method. It should:

  • Get input for a string and a shift value
  • Convert to upper case
  • Only perform the following items on alphabetic characters between A and Z
  • Utilize a for loop which uses postfix incrementing operator
    • Convert character to its ASCII equivalent (type cast)
    • Shift buy shift value entered above
      • If you reach end of alphabet, wrap around
      • Example: A shifted to the left 2 would become Y
    • Convert back to its character equivalent (type cast)
    • Output the new character
  • Get input for a string and a shift value
  • Perform same steps above to convert the encrypted text back to plain text
  • Be sure to get input again as a different encrypted text may be entered

Utilize postfix increment/decrement operations and compound assignment operators for all math. Example: x++ or x+=2.

Mimic the sample session precisely.

Upload your page to the Dropbox.

NOTE: Complete your activity and submit it to the Dropbox.

Total Points

Sample Session:

Please enter text to encrypt
easter
Please enter shift value
3
BXPQBO
Please enter text to decrypt
bxpqbo
Please enter shift value
-3
EASTER
Press any key to continue . . .

Sample Session 2: : (Notice spaces removed from input)

Please enter text to encrypt
This Is A Test
Please enter shift value
3
QEFPFPXQBPQ
Please enter text to decrypt
qefpfpxqbpq
Please enter shift value
-3
THISISATEST
Press any key to continue . . .

Sample Session 3: (Notice the different shift and decrypt value)

Please enter text to encrypt
hello
Please enter shift value
3
EBIIL
Please enter text to decrypt
ebiil
Please enter shift value
5
ZWDDG
Press any key to continue . . .

Explanation / Answer

import java.util.Scanner;


public class substitutionCipher {


public static void main(String args[]) {

String str;

Scanner inS = new Scanner(System.in);

Scanner inI = new Scanner(System.in);

int choice;

int option;

do {


int i;

int offset;


System.out.println("Please enter text to encrypt");


str = inS.nextLine();

System.out.println("Please enter shift value");

offset = inI.nextInt();

str=str.toUpperCase();

String tempStr;

if(offset>0)

{

tempStr= encrypt(str, offset);}

else

{

tempStr = decrypt(str, offset);

}



System.out.println(tempStr);



// choice==2 , perform decryption


System.out.println("Please enter text to decrypt");


str = inS.nextLine();

System.out.println("Please enter shift value");

offset = inI.nextInt();

str=str.toUpperCase();


if(offset>0)

{

tempStr= encrypt(str, offset);}

else

{

tempStr = decrypt(str, offset);

}

System.out.println(tempStr);



System.out.println("Press 2 to continue . . . or 1. to exit");


option = inI.nextInt();

} while (option != 1);



}


public static String encrypt(String str, int offset) {


int ch;

String S="";

for(int i=0;i<str.length();i++)

if(str.charAt(i)!=' ')

{

if((ch=(int)str.charAt(i)-offset)<65)

ch+=26;

S+=(char)ch;

}


return S;


}


public static String decrypt(String str, int offset) {



int ch;

String S="";

for(int i=0;i<str.length();i++)

if(str.charAt(i)!=' ')

{

if((ch=(int)str.charAt(i)-offset)>90)

ch-=26;

S+=(char)ch;

}


return S;



}

}