
Students are required to create a Python
A- The program should have a main menu, through which the user can choose whether he wants to encrypt a text or decrypt it.
B- If the user chose to encrypt plaintext, he will be asked to enter his ID, which is also the name of the input file (i.e. if student ID is 199999, then the input file name should be 199999.txt).
The user should not enter the file extension (i.e. .txt), instead, the program should append the extension to the ID automatically.
C- The input file must contain the following information:
- Student full name
- Student ID
- Student Age
D- After that, if the file does not exist, the program should warn the user about it. If the file exists, the program must import the data from the input file using a function.
E- The user then will be asked to choose an operation: Encryption, Decryption, or Exit.
1. Encryption: the encryption process should be done through a group of steps (functions).
First, calling a function to read the plaintext data (unencrypted data) from a file called: plain.txt.
Then another function will be called, which is the function responsible for creating the key for encryption, the key creation process is explained below.
After creating the key, a third function will be called to calculate the rounded average of the key, age, and the number of letters in the student’s name.
The main encryption function will proceed with encrypting the data, using the created key.
Finally, a function to save the ciphertext will be called, to save the result to a text file, named cipher.txt
2. Decryption: Similar to encryption, the decryption process will have similar functions for reading the ciphertext from cipher.txt, load the key from key.txt, decrypting the ciphertext, and finally saving the recovered plaintext to a file called original.txt.
3. Exit: Choosing this option will exit the program.
F- Creating the key:
Step 1: Based on the student ID (SID) and age, first calculate the sum of SID digits (i.e. SID: 190190 then sum = 20). Second, find the sum % age (i.e. 20 %18 = 2), and based on this number, you need to left-shift or right-shift the SID. If the value is 1, left-shift by 1 (i.e. the 190190 will become 901901), and so on for values from 1 to 9. If the value is 0, then you need to do a single right-shift (i.e. 190190 will become 019019). Finally, if the value above 9, then you need to subtract the 10 from the value (i.e. sum % age = 33 % 20 = 13, then 13 – 10 = 3 is the number of left-shifts)
Step 2: After shifting the SID, the student must create the encryption key as follows: Shifted SID + age + length(name). Example, shifted SID = 901901, age =20, name = Ahmed Ali, then length of name = 9. The generated key = 901901209
Your program must save the key into a file called mykey.txt
G- Using the key for encryption:
Since the used
In order to increase the strength of your encryption, you must use your key after applying Caesar, as in this example: If your text is “Hello”, and you applied Caesar cipher with a shift of 3, the result is “khoor”. If your key is 190190, your final ciphertext would be “k1h9o0o1r90”. In other words, your final ciphertext is composed of one character from the result of Caesar cipher, then the second character is from the key, and so on until you iterate over the whole plaintext (repeating the key if it is shorter than the plaintext)
Your program must save the result in a file called cipher.txt
H- Decrypting the ciphertext:
In order to decrypt the ciphertext, you must load it from cipher.txt, remove the embedded key, apply Caesar cipher again to decrypt, and finally save the recovered plaintext into a file called original.txt.



Trending nowThis is a popular solution!
Step by stepSolved in 4 steps with 6 images

- <<Write in Java>> - Challenge 7 File encryption is the science of writing the contents of a file in a secret code. Your encryption program should work like a filter, reading the contents of one file, modifying the data into a code, and then writing the coded contents out to a second file. The second file will be a version of the first file, but written in a secret code. Although there are complex encryption techniques, you should come up with a simple one of your own. For example, you could read the first file one character at a time, and add 10 to the character code of each character before it is written to the second file. - Challenge 8 Write a program that decrypts the file produced by the program in Programming Challenge 7. The decryption program should read the contents of the coded file, restore the data to its original state, and write it to another filearrow_forwardUse C++ Write a program that prints a menu of choices: L -> Find the lowest value in a file H -> Find the highest value in a file A -> Find the average value in a file Q -> Quit Choose: The program does input validation and asks the user to reenter as long as the user’s choice does not correspond to an item on the menu. Invalid choice. Re-enter: If the user selects any valid choice other than Quit, the program prompts the user to enter the file name, Enter input file name: then reads the content of the file and prints the value requested (highest value, lowest value or average value). Highest value is 0 Lowest value is 0 Average value is 0 If the file cannot be opened or is empty, the program should display the message: File empty or could not open file Then the program displays the menu again. If the user selects Quit, the program prints “Exiting” and terminates. Additional requirements – Make sure you meet all the requirements You are not allowed to use arrays You are…arrow_forwardDesign a modular program in Python to process payroll for all hourly paid employees, save all the data into a text file and make a backup file as well. The program should allow user enter each employee's ID, name, hours worked, and hourly pay rate. And then calculate gross pay with overtime hours(hours beyond 40) paid 50% more. And then the program should display pay statement for each employee and store them into a same text file. The program should display total number of employees, total number of hours worked by all employees, and total gross pay and save them at the end of the same text file as well. The program should contain the following functions: main(), get_employee_info(), calc_gross_pay(hours, rate), display_pay_statement(emp_id, emp_name, hours_horked, hourly_pay_rate, gross_pay), save_pay_statement_to_file(file_object, emp_id, emp_name, hours_worked, hourly_pay_rate, gross_pay), save_summary_to_file(file_object, number_of_employees, total_hours_worked, total_gross_pay).…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





