Solved by Expert Tutors
csv import sys #The password list - We start with it populated for testing purposes passwords =...
Solved by Expert Tutors
Question

We will be extending the Caesar cypher we looked at earlier into a

full-fledged password saver. The program will be able to:

-Lookup passwords for websites
-Add new passwords for websites (encrypting them with the caesar cypher)
-Store these passwords to a file on the computer
-Load passwords from a stored password fileMost of the code is provided but there are some critical components missing. You will need to add these components.


I'm stuck on this project is there anyone that can assist

password saver.docx
csv
import sys
#The password list - We start with it populated for testing purposes
passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]
#The password file name to store the passwords to
passwordFileName = "samplePasswordFile"
#The encryption key for the caesar cypher
encryptionKey=16
#Caesar Cypher Encryption
def passwordEncrypt (unencryptedMessage, key):
#We will start with an empty string as our encryptedMessage
encryptedMessage = ''
#For each symbol in the unencryptedMessage we will add an encrypted symbol into the
encryptedMessage
for symbol in unencryptedMessage:
if symbol.isalpha():
num = ord(symbol)
num += key
if symbol.isupper():
if num > ord('Z'):
num -= 26
elif num < ord('A'):
num += 26
elif symbol.islower():
if num > ord('z'):
num -= 26
elif num < ord('a'):
num += 26
encryptedMessage += chr(num)
else:
encryptedMessage += symbol
return encryptedMessage
def loadPasswordFile(fileName):
with open(fileName, newline='') as csvfile:
passwordreader = csv.reader(csvfile)
passwordList = list(passwordreader)
return passwordList
def savePasswordFile(passwordList, fileName):
with open(fileName, 'w+', newline='') as csvfile:
passwordwriter = csv.writer(csvfile) passwordwriter.writerows(passwordList) while True:
print("What would you like to do:")
print(" 1. Open password file")
print(" 2. Lookup a password")
print(" 3. Add a password")
print(" 4. Save password file")
print(" 5. Print the encrypted password list (for testing)")
print(" 6. Quit program")
print("Please enter a number (1-4)")
choice = input()
if(choice == '1'): #Load the password list from a file
passwords = loadPasswordFile(passwordFileName)
if(choice == '2'): #Lookup at password
print("Which website do you want to lookup the password for?")
for keyvalue in passwords:
print(keyvalue[0])
passwordToLookup = input()
####### YOUR CODE HERE ######
#You will need to find the password that matches the website
#You will then need to decrypt the password
#
#1. Create a loop that goes through each item in the password list
# You can consult the reading on lists in Week 5 for ways to loop through a list
#
#2. Check if the name is found. To index a list of lists you use 2 square backet sets
# So passwords[0][1] would mean for the first item in the list get it's 2nd item
(remember, lists start at 0)
# So this would be 'XqffoZeo' in the password list given what is predefined at the top
of the page.
# If you created a loop using the syntax described in step 1, then i is your 'iterator' in
the list so you
# will want to use i in your first set of brackets.
#
#3. If the name is found then decrypt it. Decrypting is that exact reverse operation
from encrypting. Take a look at the
# caesar cypher lecture as a reference. You do not need to write your own decryption
function, you can reuse passwordEncrypt
#
# Write the above one step at a time. By this I mean, write step 1... but in your loop
print out every item in the list
# for testing purposes. Then write step 2, and print out the password but not
decrypted. Then write step 3. This way
# you can test easily along the way.
#
####### YOUR CODE HERE ###### if(choice == '3'):
print("What website is this password for?")
website = input()
print("What is the password?")
unencryptedPassword = input()
####### YOUR CODE HERE ######
#You will need to encrypt the password and store it in the list of passwords
#The encryption function is already written for you
#Step 1: You can say encryptedPassword =
passwordEncrypt(unencryptedPassword,encryptionKey)]
#the encryptionKey variable is defined already as 16, don't change this
#Step 2: create a list of size 2, first item the website name and the second item the
password.
#Step 3: append the list from Step 2 to the password list
####### YOUR CODE HERE ######
if(choice == '4'): #Save the passwords to a file
savePasswordFile(passwords,passwordFileName)
if(choice == '5'): #print out the password list
for keyvalue in passwords:
print(', '.join(keyvalue))
if(choice == '6'): #quit our program
sys.exit()
print()
print()

Step-by-step answer

tesque dapibus efficitur


m risus ante, dapibus a molestie consequat, ultri


ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae od

acinia pulvi


itur laoreet. Nam r

o. Donec aliquet.

et, consectetur adipiscing elit. Nam lacinia pulvinar tortor ne

usce dui lectus, congue vel

, dictum vitae odio

ng elit. Nam lacinia pulvinar t


onec aliquet. Lorem i

molestie consequat, ultrices ac magna. Fu

ipsum dolor sit amet, consectetur adipiscing elit.

sus ante, dapibus a molestie co




nec facilisis. Pellentesque da

m ipsum dolor sit ame



trices ac magna. Fusce dui lect

ctum vitae odio. Donec aliquet. Lorem ipsum dolor sit ame

gue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, con

et, consectetur adipiscing

gue

llentesque dapibus efficitur laoreet. Nam risus ante

or nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapib

ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tort

ia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam ris

consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. P

a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoree

usce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ip

usce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem i

sus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue

usce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem i

ipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficit

o. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pu

, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur

at, ultrices ac magna. Fusce d

usce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem i





fficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fus

cing elit. Nam lacinia pulvinar tortor nec facili

ce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum


ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consect


sus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lect

Subscribe to view the full answer

Why Join Course Hero?

Course Hero has all the homework and study help you need to succeed! We’ve got course-specific notes, study guides, and practice tests along with expert tutors.

  • -

    Study Documents

    Find the best study resources around, tagged to your specific courses. Share your own to gain free Course Hero access.

    Browse Documents
  • -

    Question & Answers

    Get one-on-one homework help from our expert tutors—available online 24/7. Ask your own questions or browse existing Q&A threads. Satisfaction guaranteed!

    Ask a Question