General Design for Vigenere Cipher Project Core Properties

advertisement
General Design for Vigenere Cipher Project
Core Properties/Capabilities of the application
-- Runs from command line with arguments
-- Determine if number/type of arguments is correct, gracefully handle errors
-- Extract mode of operation (encoding or decoding) from args array
-- Extract input and output file names from args array
-- Extract encoding/decoding key from args array
-- [Optional] Check for adequate length of key, report warnings or terminate
-- Initialize encoding/decoding Vigenere table
-- Open input file for reading
-- Open output file for overwriting
-- Read input file and process line by line without error
-- Process a line of input by Vigenere table lookup using key provided and letter substitution
-- Write processed line to output file
-- Close both files after processing
-- [Optional] Report statistics of processing to user
Additional options include implementing the algebraic version of the cipher algorithm without
requiring a lookup table.
This cipher system should handle most commonly used ASCII characters including
punctuation symbols, digits, etc. A common choice would be to process all characters from
ASCII 32 (space) to ASCII 126 (~). Low, below 32, and high, above 126, ASCII characters
are ignored or a warning is provided.
File reading and writing should respect line structure of files so the document that is encoded
or decoded has essentially the same format as the original.
This application can be bundled with a simple GUI so we have a user friendly version for
opening a source file as well as typing and editing text which can then be encoded using the
cipher system. Similarly, we can open an encrypted file and see the decoded text in the GUI
text editing area.
Download