Question
Implement an extended version of the Caesar cipher that users the characters from (Space, ASCII 32) to '~' (tilde, ASCII 126). Any character (printable
Implement an extended version of the Caesar cipher that users the characters from " (Space, ASCII 32) to '~' (tilde, ASCII 126). Any character (printable or not) that falls outside of the ASCII range of 32-126 should be left unchanged during both encryption and decryption. This will ensure that printable files
remain printable
Upon starting the program should first prompt the user to enter a decryption password. The password is
"lovecybe366!" without auotes. Store a hash of the password as a constant in your program. When the user enters a password, hash it and compare it to the constant. If the correct password is entered, continue the program. If an incorrect password is entered, abort the program. For hash type you can use anything supported in the Proxmox DVWA image.
After authentication the user is prompted to enter they key size for this run of the program. Acceptable values are 0 to 94. Example encryption with key size of 1:
Plaintext: Hello (-World~}!
Ciphertext: Ifmmp!| Xpsme ~"
After the key size the user is prompted to encrypt or decrypt.
Next the user is promoted to choose inout via a file or jext
Inext is chosen me user can enter plaimext or cinenext cecenaine on te operation requested
If a file is chosen the user should enter the full path and filename to the file to decrypt or encrypt
dependina on the operation requesteo.
lastly, the program should output to standard out either plaintext or ciphertext depending on the operation
requested
The program can be written in either C or C++. You must use make and a Makefile and have commands to build and clean. The program should be written in such a way that all inputs are handled securely. The program should be written in such a way that it is not easily crashable
Submit a tar.bz2 file containing your source code and Makefile. Additionally, create a PDF file. in this PDF file explain what steps you took to write your code in a secure fashion. How does your program gc about making sure buffer overflows and other errors are mitigated? Think about which parts of your program might be susceptible when explaining your defense. Explain any other steps you took to make the program more robust and crash proof. Use Chapter 2 in the Secure Coding in C and C++ book as a reference for how you dealt with strings.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started