Skip to content
VaultIQ

VaultIQ

Secure by design, Intelligent by default

Created on 24th January 2026

VaultIQ

VaultIQ

Secure by design, Intelligent by default

The problem VaultIQ solves

VaultIQ is a secure, local-first password manager designed to address common security challenges faced by individuals in the digital age.

1. Password Fatigue & Memory Limits

The Problem: The average user has dozens of accounts, and remembering unique, complex passwords for each is humanly impossible. This leads to writing them down insecurely or using simple, easy-to-guess passwords.
VaultIQ's Solution:

  • Centralized Vault: Stores all credentials in a single, encrypted database.
  • Master Key System: Users only need to remember one strong master password to unlock access to all their accounts.

2. Use of Weak & Guessable Passwords

The Problem: Many users rely on short or pattern-based passwords (e.g., "123456", "password", "qwerty") that are easily cracked by modern brute-force tools.
VaultIQ's Solution:

  • Advanced Strength Analyzer: Uses Shannon entropy and pattern recognition to evaluate password strength in real-time.
  • Crack Time Estimation: Provides a realistic estimate of how long it would take to crack a password (e.g., "Instance", "3 days", "Centuries").
  • Visual Feedback: Color-coded labels (Weak, Fair, Strong) guide users toward better security.

3. Password Reuse Risks

The Problem: Using the same password across multiple sites is a critical vulnerability. If one site is breached, attackers gain access to all other accounts sharing that credential.
VaultIQ's Solution:

  • Vault Health Analytics: The dashboard automatically scans for and counts reused passwords.
  • Security Score: A holistic "Health Score" (0-100) incentivizes users to diversify their credentials.

4. Unsecured Digital Hygiene

The Problem: Passwords often go unchanged for years, and users may leave their unlocked apps open to "shoulder surfing" or unauthorized physical access.
VaultIQ's Solution:

  • Stale Password Detection: Flags passwords that haven't been updated in over 90 days.
  • Auto-Lock Mechanism: Automatically locks the application after 5 minutes of inactivity or when the window is minimized.
  • Panic Mode: A global shortcut (

    Ctrl+Shift+L

    ) to instantly lock the vault and clear the clipboard.

5. Trust & Data Privacy

The Problem: Cloud-based password managers can suffer from server-side breaches, exposing user data.
VaultIQ's Solution:

  • Local-First Architecture: Data is stored locally on the user's machine in an encrypted

    vault.dat

    file.
  • No Cloud Sync: Ensures credentials never leave the user's device, giving them complete control over their digital keys.

Challenges I ran into

Building VaultIQ required solving several interesting technical challenges, particularly around security architecture and user interface event handling.

1. Implementing Auto-Lock on Inactivity

The Challenge:
Detecting user idleness across the entire application, rather than just a specific window or widget, was tricky. A standard timer would reset only on explicit actions, potentially missing subtle user interactions.

The Solution:
I utilized

QApplication.instance().installEventFilter(self)

in the main

Dashboard

class. This allowed me to intercept global events like

KeyPress

,

MouseMove

, and

Wheel

at the application level. Every time such an event occurs, the inactivity timer is reset to 5 minutes. This ensures the vault locks itself reliably if the user walks away.

2. Secure Data Serialization

The Challenge:
Storing structured data (dictionaries of passwords) securely on disk without leaking any metadata or structure.

The Solution:
I adopted a "serialize-then-encrypt" approach.

  1. The Python object (list of entries) is first serialized using

    pickle

    .
  2. This binary blob is then encrypted using

    Fernet

    (symmetric encryption).
  3. The resulting token is written to disk.
    This ensures that even the file structure is hidden from an attacker; they only see a blob of random bytes.

3. Accurate Password Strength Estimation

The Challenge:
Standard Regular Expression checks (e.g., "must have 1 uppercase, 1 symbol") are outdated and don't reflect real-world cracking difficulty. A very long lowercase password can be stronger than a short complex one.

The Solution:
I implemented a Shannon Entropy calculator in

strength.py

.

  • It calculates the "pool size" based on character sets used.
  • It applies penalties for repeated characters (e.g., "aaaa") and sequential patterns (e.g., "123").
  • This results in a "bits of entropy" score, which maps to a more realistic "Time to Crack" estimate for a brute-force attack.

4. Dynamic UI Layouts with PySide6

The Challenge:
Displaying a variable list of password cards that flows correctly when the window is resized or when the search filter is applied.

The Solution:
I validated the use of

QScrollArea

wrapping a

QGridLayout

.

  • The grid dynamically recalculates column positions based on index

    (i // columns, i % columns)

    .
  • When filtering, I had to efficiently remove widgets from the layout and re-add only the matching ones without causing visual artifacts or memory leaks.

5. Key Management Lifecycle

The Challenge:
Passing the encryption key securely from the Login Dialog to the Dashboard without storing it globally or writing it to a temporary file.

The Solution:
The

main.py

entry point acts as a secure orchestrator.

  • It launches

    LoginDialog

    strictly to acquire the key.
  • Upon success, the key is passed directly to the

    Dashboard

    constructor.
  • When the dashboard closes or locks, the key variable is discarded, and the application loop waits for a fresh login, ensuring the key resides in memory only as long as necessary.

Discussion

Builders also viewed

See more projects on Devfolio