Hello, I am working on a homework assignment that has me creating a password saver using a ceasar cipher code. I was provided the key to the cipher and two passwords. I need to look up and decrypt the passwords and create a program to add a password and delete a password (options 2, 3 and 7). I had no problems adding a password. I am also having no problems looking up a password but am havving problems decrypting the password. I can only get it to provide me the give, encrypted password and not the unencrypted one which is the one I need to provide. I am not getting any errors, it is just not doing anything that I can see. I am getting the following error with the deleting a password.
Traceback (most recent call last): File "C:/Users/lrgli/Desktop/Python Programs/Password test file.py", line 187, in <module> passwords.remove (passwordToDelete) ValueError: list.remove(x): x not in list Any assistance, guidance, pointers would be appreciated. Is my indentation wrong for the decryption, am I missing something connecting the two, etc.? I feel like I am close. It is python version 3. Here is my code: import 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(" 7. Delete a password") print("Please enter a number (1-4 or 7)") 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() for i in range(len(passwords)): # This loops through my list of passwords if passwordToLookup in passwords [i][0]: #this says what matches up the website you input with the website in the lists of passwords # print (passwords[i][1]) #this prints the encrypted password #The encryption key for the caesar cypher deencryptionKey=16 #Caesar Cypher Encryption def passwordunEncrypt (encryptedMessage, key): #We will start with an empty string as our encryptedMessage unencryptedMessage = '' #For each symbol in the unencryptedMessage we will add an encrypted symbol into the encryptedMessage for symbol in encryptedMessage: 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 unencryptedMessage += chr(num) else: unencryptedMessage += symbol return unencryptedMessage print(passwordunEncrypt(passwords[i][1], 16)) if(choice == '3'): print("What website is this password for?") website = input() print("What is the password?") unencryptedPassword = input() encryptedPassword = passwordEncrypt (unencryptedPassword,encryptionKey) # This encrypts the password you just entered newwebsitepassword = [website, encryptedPassword] # This creates my list of 2 items, website and password passwords.append(newwebsitepassword) #This adds this to the password list 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() if (choice == '7'): #delete a password print ("What website password would you like to delete?") for keyvalue in passwords: print(keyvalue[0]) passwordToDelete = input() for i in range(len(passwords)): # This loops through my list of passwords if passwordToDelete in passwords [i][0]: #this says what matches up the website you input withthe website in the lists of passwords passwords.remove (passwordToDelete) print() print() _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor