예제 #1
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!")
예제 #2
0
    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!")
예제 #3
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!")
예제 #4
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")