Question
C++ JUST THE DRIVER PROGRAM In the Caesar cipher, each letter is always shifted by the same value. What if we shifted each letter by
C++ JUST THE DRIVER PROGRAM
In the Caesar cipher, each letter is always shifted by the same value. What if we shifted each letter by a different value? A cipher known as the Vigenere cipher consists of several Caesar ciphers in sequence with different shift values. For example, we might shift the first letter of the plaintext to the right by five, the second by 17, etc. The sequence is defined by a keyword where each letter defines the shift value. If a letter in the keyword is the nth letter in the alphabet, then each ciphertext letter will be the corresponding plaintext letter shifted to the right by n-1. For example, suppose that the plaintext to be encrypted is: Hello, world! ...and the person sending the message chooses the keyword "cake". The first letter of the keyword is 'c', and 'c' is the third letter of the alphabet. That means we shift the first letter of the plaintext to the right by 3-1 = 2, which makes the first letter of the ciphertext 'J'. Then repeat for the remaining letters. If we reach the end of the keyword, go back and use the first letter of the keyword. Following these steps, the resulting ciphertext is: Jevpq, wyvnd! Write a C++ function to implement the Vigenere cipher. You may make your own prototype though it should return the encrypted string as above. Again, your function should preserve case, and any non-alphabetic characters should be left unchanged. Write decryption functions corresponding to the above.
Write a driver program to test your code. This program should prompt/input a string, output the encrypted strings, and check that encrypting and decrypting a string results in the original string. Pseudocode for main is: Loop the following until the user inputs ctrl-d (EOF) Prompt for string Input string s Prompt for a character to indicate which type of cipher the user wants, and appropriate parameters. Encrypt s and output Decrypt the result and check that it is the same as s. Also output it.
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