def update_password(): password_name = input("Which password should be changed?: ") config = Config() f = config.GetKey() d = Data() data = d.Fetch() for name in data: if password_name.lower() == name.lower(): password_stored = data[name]['password'].encode() notes_stored = data[name]['notes'].encode() current_password = f.decrypt(password_stored) print(f"Current Password: {current_password.decode()}") password_input = input("New Password: "******"username": str(username_stored.decode()), "password": str(password_stored.decode()), "notes": notes_stored.decode()} d.Update(data) print(f"{password_name} updated!")
def remove_password(): user_input = input("Which name should I remove?: ") d = Data() data = d.Fetch() password_found = False for key, value in list(data.items()): if user_input.lower() == key.lower(): password_found = True if password_found: confirm = False while confirm is False: confirm_input = input(f"Are you sure you want to delete {user_input}? (y/n): ") if confirm_input.lower() == 'y': confirm = True for key, value in list(data.items()): if user_input.lower() == key.lower(): del data[key] d.Update(data) print(f"{user_input} deleted!") else: pass else: print(f"{user_input} is not found!")
def store_password(): name = input("Enter Name / URL: ") username_provided = input("Login: "******"Password: "******"Notes: ") notes = [] while True: note_line = input("\t> ") if note_line: notes.append(note_line) else: break notes_text_provided = '\n'.join(notes) username = username_provided.encode() password = password_provided.encode() note = notes_text_provided.encode() config = Config() f = config.GetKey() username_stored = f.encrypt(username) password_stored = f.encrypt(password) notes_stored = f.encrypt(note) d = Data() data = d.Fetch() data[str(name)] = {"username": str(username_stored.decode()), "password": str(password_stored.decode()), "notes": notes_stored.decode()} d.Update(data) print(f"{name} stored!")
def password_generator(): password_length = input("Password Length: ") chars = string.ascii_letters + string.digits + '!@#$%^&*()' rnd = random.SystemRandom() new_password = ''.join(rnd.choice(chars) for i in range(int(password_length))) print(new_password) store_input = input("Should I store this password? (y/n): ") if store_input.lower() == 'y': name = input("Enter Name/Site: ") username_provided = input("Enter Username: "******"Notes: ") notes = [] while True: note_line = input("\t> ") if note_line: notes.append(note_line) else: break notes_text_provided = '\n'.join(notes) username = username_provided.encode() password = new_password.encode() note = notes_text_provided.encode() config = Config() f = config.GetKey() username_stored = f.encrypt(username) password_stored = f.encrypt(password) notes_stored = f.encrypt(note) d = Data() data = d.Fetch() data[str(name)] = {"username": str(username_stored.decode()), "password": str(password_stored.decode()), "notes": notes_stored.decode()} d.Update(data) print(f"{name} stored!") subprocess.Popen(['clip'], stdin=subprocess.PIPE).communicate(password) print(f"{name} password copied to clipboard")