Python Forum

Full Version: Password Saver Program
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Below is the Password Saver program that I need help with, my entries, and the error I'm receiving. Any recommendations you can give me will be greatly appreciated. Thank you.

#Password List
passwords = [["yahoo", "XqffoZeo"], ["google", "CoIushujSetu"]]

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
        #
    for i in range (len(passwords)):   #Create a loop that goes through each item in the password list
        i = [0, 1]

        #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

    encryptedpassword = passwordEncrypt(unencryptedPassword, encryptionKey)
    newPassword = [[website, encryptedpassword]]
    passwords.append(newPassword)

        ####### YOUR CODE HERE ######
Here is my code for choice #2:

 
     for i in range (len(passwords)):   #Create a loop that goes through each item in the password list
          i = [0, 1]
Here is my code for choice #3:

    encryptedpassword = passwordEncrypt(unencryptedPassword, encryptionKey)
    newPassword = [[website, encryptedpassword]]
    passwords.append(newPassword)
Here is the error I'm receiving:

Error:
Traceback (most recent call last): File "C:/Users/CynthiaL/Documents/Champlain College - Cindy/INTRO TO COMPUTER SYSTEMS/untitled15/Password Saver.py", line 122, in <module> encryptedpassword = passwordEncrypt(unencryptedPassword, encryptionKey) NameError: name 'unencryptedPassword' is not defined Process finished with exit code 1
Your indenting is off. The code you say is for choice #3 is not indented under the if statement that indicates choice #3. Therefore it is processed for all choices, and the other choices don't define unencryptedPassword.