A sleek and secure open-source desktop password manager called VaultKey β with encryption, dark/light mode toggle, clipboard support, and more.
- π Dark Mode & Light Mode toggle with icon-based switch (π / π)
- π AES Encryption using
cryptographyto securely store passwords - π² Strong Password Generator (letters, symbols, numbers)
- π Search Functionality to retrieve saved credentials by website
- πΎ Local JSON Storage (encrypted)
- π Clipboard Copy for generated passwords
- πΌοΈ Polished Tkinter GUI with custom icons and colors
- π» Fully compatible with PyInstaller for
.exepackaging
| Dark Mode | Light Mode |
|---|---|
![]() |
![]() |
VaultKey-Password_manager/
βββ main.py # Main GUI and app logic
βββ core/
β βββ password_logic.py # PasswordGenerator class
β βββ crypto_util.py # Encryptor class for encryption/decryption
βββ assets/
β βββ logo.png # App logo
β βββ sun.png # Light mode icon
β βββ moon.png # Dark mode icon
β βββ (no sensitive data) # password_data.json and secret.key are not stored here
βββ requirements.txt # Python dependencies
βββ README.md # You're reading it!
βββ .gitignore # Prevents sensitive files from being tracked
π Note: On first run, VaultKey automatically creates and stores:
- "password_data.json"
- "secret.key"
in the system folder:
C:\Users\<YourUsername>\AppData\Roaming\VaultKey\π‘ Pro Tip:
Use python main.py during development for faster testing. Build the .exe only for final deployment or sharing with others.
git clone https://github.com/Harsh-Belekar/VaultKey-Password_manager.git
cd VaultKey-Password_managerpip install -r requirements.txtpython main.py- tkinter β GUI framework
- pyperclip β Clipboard integration
- cryptography β AES encryption for password security
- json β Data storage format
- Use PyInstaller to convert the app into a standalone executable:
python -m PyInstaller --onefile --windowed --icon=assets/logo.ico --add-data "assets;assets" --name VaultKey main.pyπ The .exe file will be located in the dist/ folder after the build.
When building the VaultKey.exe file using PyInstaller, some antivirus software (especially Windows Defender) might flag the generated .exe as a potential threat.
This is a false positive, triggered by:
- Using Fernet encryption
- Saving encrypted JSON files
- Clipboard access via
pyperclip
To successfully build the .exe without triggering antivirus errors:
- βοΈ I excluded the project folder from Windows Defender using:
- Settings β Privacy & Security β Windows Security β Virus & Threat Protection β Manage Settings β Add Exclusion
- π Rebuilt the
.exeusing PyInstaller:
python -m PyInstaller --onefile --windowed --icon=assets/logo.ico --add-data "assets;assets" --name VaultKey main.py-
All saved passwords are encrypted using a secure Fernet key (AES-128) via the
cryptographylibrary. -
The encryption key (
secret.key) and your password data (password_data.json) are stored outside the project folder in a protected system location (see below). -
These files are excluded from Git tracking using
.gitignoreto ensure your credentials remain private.
VaultKey stores sensitive data in the user's system directory, not in the assets/ folder.
C:\Users\<YourUsername>\AppData\Roaming\VaultKey\
- password_data.json β Encrypted password data
- secret.key β Your encryption key (do not delete unless resetting)
- Compatibility with
.exebuilds where asset folders are read-only - Secure, writable file handling for all operating modes
-
Export/Import Encrypted Backups
Easily save and load encrypted password backups locally or to the cloud. -
Master Password Authentication
Add a secure login screen to unlock the VaultKey app before accessing any credentials. -
Cloud Sync or Database Storage
Enable sync across devices using Firebase, SQLite, or encrypted cloud storage APIs.
This project is licensed under the MIT License.
Feel free to use, modify, and distribute VaultKey for personal or commercial purposes.

