INTRODUCTION

I need a program that we will call, ‘The CaesarCipher’ whichis abasic encryption algorithm.

Taking eachletterinthe plaintextandreplacingit with anotherletter thatis foundinthe alphabet thatis some fixednumber of positions downfromit.

 

(For example:intheencryption process,aCaesarcipher with a

*      Shiftof3willreplace alloccurrences ofthe letter‘a’ withtheletter‘d’

o   all occurrences ofthe letter‘b’ withthelettere,etc.

*      Decryption followsthe reverse process where forashiftof 3,every letter‘d’is replacedwith the letter ‘a’,every letter‘eis replacedwith a‘b’.Here are some example shifts:

 

SHIFTOF3:

 

ABCDEFGHIJKLMNOPQRSTUVWXYZ

|||||||||||||||||||||||||| DEFGHIJKLMNOPQRSTUVWXYZABC

 

 

SHIFTOF23:

 

 

ABCDEFGHIJKLMNOPQRSTUV WXYZ

|||||||||||||||||||||||||| XYZABCDEFGHIJKLMNOPQRSTUVW

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PROGRAMREQUIREMENTS

 

 

BASICFUNCTIONALITY

 

*      Need a file called FileUtilitiesthatis usedencrypt and decrypt the informationinatextfile.

*      TheFileUtilitiesprogramshouldaccept 4command linearguments:

§  anencryptor decryptcommandtoindicate whetherthe file should be encryptedor decrypted(required)

§  aninteger value thatspecifies the shift (required)

§  the name ofthe textfile thatis to be encryptedor decrypted(required)


The following tablelists examples thatshowhowtoinvoke the FileUtilities

programfromthe command line:

Example Invocation

Description

java FileUtilities encrypt 3 secret.txt

Ø  Reads in the content of the file secret.txt.

Ø  Encrypts the data.

Ø  Writes the encrypted.

java FileUtilites decrypt 3 secret.txt

Ø  Reads in the contents of the file secret.txt.

Ø  Decrypts the data.

Ø  Writes the decrypted data back to

java FileUtilities encrypt 3 secret.txt – verbose

Ø  Prints the file contents to the console before and after encryption.

 

 

 

Whenthe programcompletes,amessage should be displayedtothe user indicating thatthe file has beenencryptedor decrypted like this:

 

C:\>java FileUtilities encrypt 3 secret.txt

Fileencryptioncomplete.

 

 

 

C:\>java FileUtilities decrypt 3 secret.txt

Filedecryptioncomplete.

 

 

 

ERRORHANDLING

 

Shouldallcheckedexceptions anddisplay an informative error message ifone occurs.The enduserof your programshouldnot see astacktrace if anexception occurs. Your programverify thatallthe required commandline arguments have beenentered,and ifarequiredinputvalueis not


provided, the programshouldissue ausage statementtohelpthe user.Here are some example scenarios with invalidinputthat your programshould handle:

 

 

 

 

Invalidcommand

 

 

C:\>java FileUtilitiesbadcommand 3 secret.txt

 

 

Unrecognizedcommand:badcommand

Usage:javaFileUtilitiescommandshiftfilename[-verbose]

 

 

Invalidshift

 

 

C:\>java FileUtilities encrypt three secret.txt

 

 

Unrecognizedshift:three

Usage:javaFileUtilitiescommandshiftfilename[-verbose]

 

 

FileNotFound

 

 

C:\>java FileUtilities encrypt 3 doesnotexist.txt

 

 

FileNotFound:doesnotexist.txt

 

CODEDESIGN

 

Nolimitinwritingjust a single class.

 

Main onlyrequirement is thatthe class FileUtilities is implementedthatincludes a

1.   main method and

2.   supports the command line argumentsdescribed above.

 

 

TESTING

 

 

 

Make sure that your programhandles the followingscenarios:

 

1.Shiftvalues that arepositive from0 - 25

2.Shiftvalues that arenegative (try asmallone like -3)

3.Shiftvalues that arelarger than 26

4.Files thatinclude textwith non-alpha characters andmixedcase (upper and lowercase).

5.File name foranon-existentfile


WHATTOTURN IN

You shouldturninonlythe javasource filesthat are neededto runyour program. These Javasource files should beincludedatthe toplevelofaziparchive file named Project03.zip.

    • 11 years ago
    Complete A++ Solution
    NOT RATED

    Purchase the answer to view it

    blurred-text
    • attachment
      answer.zip