Пример #1
0
    def list_names():
        config = Config()
        f = config.GetKey()

        d = Data()
        data = d.Fetch()

        name_list = []
        username_list = []
        password_list = []
        notes_list = []
        for obj in data:
            name_list.append(obj)

            username = f.decrypt(data[obj]['username'].encode())
            username_list.append(username.decode())

            password = f.decrypt(data[obj]['password'].encode())
            password_list.append(password.decode())

            note = f.decrypt(data[obj]['notes'].encode())
            notes_list.append(note.decode())
        df = pd.DataFrame(
            {'name / url': name_list, 'username': username_list, 'password': password_list, 'notes': notes_list})
        df = df[['name / url', 'username', 'password', 'notes']]
        df.head()
        pd.options.display.max_columns = None
        pd.options.display.width = None
        print(df)
Пример #2
0
    def search_password():
        user_input = input("Search: ")

        config = Config()
        f = config.GetKey()

        d = Data()
        data = d.Fetch()

        passwords_found = 0
        for name in data:
            find = name.lower().find(user_input.lower())
            if find >= 0:
                passwords_found += 1
                username_stored = data[name]['username'].encode()
                password_stored = data[name]['password'].encode()
                notes_stored = data[name]['notes'].encode()

                username = f.decrypt(username_stored)
                password = f.decrypt(password_stored)
                notes = f.decrypt(notes_stored)

                print(f"*** {name} ***")
                print(f"UID - {username.decode()}")
                print(f"PWD - {password.decode()}")
                print("--------------------------")
                print("Notes:")
                print(f"{notes.decode()}")
                print("--------------------------")
                print("")
        if passwords_found == 0:
            print(f"'{user_input}' not found!")
Пример #3
0
    def get_password():
        user_input = input("Name / URL: ")

        config = Config()
        f = config.GetKey()

        d = Data()
        data = d.Fetch()

        passwords_found = 0
        for name in data:
            if name.lower() == user_input.lower():
                passwords_found += 1
                username_stored = data[name]['username'].encode()
                password_stored = data[name]['password'].encode()
                notes_stored = data[name]['notes'].encode()

                username = f.decrypt(username_stored)
                password = f.decrypt(password_stored)
                notes = f.decrypt(notes_stored)

                print(f"*** {name} ***")
                print(f"UID - {username.decode()}")
                print(f"PWD - {password.decode()}")
                print("")
                print("Notes:")
                print(f"{notes.decode()}")
                print("")

                subprocess.Popen(['clip'], stdin=subprocess.PIPE).communicate(password)
                print(f"{name} password copied to clipboard")
        if passwords_found == 0:
            print(f"{user_input} not found!")
Пример #4
0
    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!")
Пример #5
0
    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!")
Пример #6
0
def main():
    config = Config()
    config.GetKey()
    cmd = Methods()
    # master_key = True
    master_key = config.master_password()
    while master_key:
        run_script = True
        while run_script:
            menu_input = input("> ")
            if menu_input.lower() == 'm' or menu_input.lower(
            ) == 'menu' or menu_input.lower() == 'help':
                print("*** Password Manager Menu ***")
                print(
                    "[(m)enu / (g)et / (s)earch / show (all) / (a)dd / (u)pdate / (d)elete / (gen)erate password / (q)uit]"
                )
            elif menu_input.lower() == 'q':
                master_key = False
                run_script = False
            elif menu_input.lower() == 's':
                cmd.search_password()
            elif menu_input.lower() == 'a':
                cmd.store_password()
            elif menu_input.lower() == 'all':
                cmd.list_names()
            elif menu_input.lower() == 'u':
                cmd.update_password()
            elif menu_input.lower() == 'd':
                cmd.remove_password()
            elif menu_input.lower() == 'g':
                cmd.get_password()
            elif menu_input.lower() == 'gen':
                cmd.password_generator()
            else:
                print("Invalid Command!")
Пример #7
0
    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")