Enterprise-grade password manager with military-grade encryption and zero-knowledge architecture.
- AES-256-GCM encryption for vault data
- Argon2id key derivation (OWASP recommended)
- RSA-4096 for secure vault sharing
- Zero-knowledge architecture - your master password never leaves your device
- Auto-lock on inactivity and USB drive removal
- Password strength analyzer with real-time feedback
- Breach detection via Have I Been Pwned API (k-anonymity)
- Security audit reports (PDF export)
- Detects weak, reused, and similar passwords
- Personal information exposure detection
- Chrome/Edge extension for one-click autofill
- Secure local API with token authentication
- Works offline - no cloud dependency
- Secure export/import with RSA encryption
- Multiple vaults with custom labels
- Digital signatures for authenticity verification
- Cross-device vault sharing
- Dark mode interface with CustomTkinter
- Real-time password strength visualization
- Hold-to-reveal password protection
- Auto-clearing clipboard (15s timeout)
- System tray integration
- Clone the repository:
git clone https://github.com/arjunjaincs/passguard
cd passguard- Install dependencies:
pip install -r requirements.txt- Run PassGuard:
python main.py-
Create your first vault:
- Click "Create New Vault"
- Enter a vault name
- Create a strong master password (12+ characters recommended)
-
Add credentials:
- Click "Add Credential"
- Enter website, username, and password
- Use the password generator for strong passwords
-
Optional - Setup browser extension:
- Click "Browser Extension" button
- Copy the authentication token
- Load the extension in Chrome/Edge
- Paste the token in the extension popup
- Python 3.8+
- Windows/Linux/macOS
- Dependencies: See
requirements.txt
customtkinter- Modern UI frameworkpycryptodome- AES encryptionargon2-cffi- Key derivationcryptography- RSA encryptionrequests- HIBP API integrationflask- Browser extension API
Master Password
β
Argon2id (3 iterations, 64MB memory)
β
256-bit AES-GCM Key
β
Encrypted Vault Data
- Master password never stored anywhere
- Vault encrypted locally before any storage
- Browser extension uses one-time tokens
- HIBP checks use k-anonymity (only 5 chars of hash sent)
- Locks after 3 minutes of inactivity
- Locks when USB drive removed (if vault on USB)
- Clears clipboard after 15 seconds
- Suspends app after 4 failed unlock attempts
- Add: Click "Add Credential" or press
Ctrl+N - Edit: Click "Edit" button on any credential
- Delete: Click "Delete" button (requires confirmation)
- Copy: Click "Copy" to copy password (auto-clears in 15s)
- Reveal: Hold the eye icon to temporarily reveal password
- Click "Security Audit" button
- Optionally provide personal info for PII detection
- Review findings and recommendations
- Export report as PDF
- Click "Breach Check" button
- Select check type (password-only or account)
- For account checks, enter HIBP API key
- Review results and update compromised passwords
Export:
- Click "Export Vault"
- Choose backup (self) or share (other user)
- For sharing, select recipient's public key
- Save the
.pvgxfile
Import:
- Click "Import Vault"
- Select
.pvgxfile - Optionally verify sender's signature
- Enter vault label
-
In PassGuard:
- Open vault
- Click "Browser Extension"
- Copy the authentication token
-
In Chrome/Edge:
- Go to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select
browser_extensionfolder
- Go to
-
Configure Extension:
- Click PassGuard extension icon
- Paste authentication token
- Click "Save Token"
- Status should turn green β
-
Use Autofill:
- Visit any login page
- Click "π Fill with PassGuard" button
- Credentials auto-filled!
passguard/
βββ main.py # Application entry point
βββ core/
β βββ crypto.py # Encryption/decryption
β βββ vault.py # Vault management
β βββ strength.py # Password strength analysis
β βββ security_audit.py # Security auditing
β βββ breach_check.py # HIBP integration
β βββ export_import.py # RSA vault sharing
β βββ autofill_server.py # Browser extension API
βββ ui/
β βββ unlock_dialog.py # Login screen
β βββ main_window.py # Main vault window
β βββ security_check_dialog.py # Breach check UI
βββ browser_extension/ # Chrome/Edge extension
βββ assets/
βββ icon.ico # Application icon
# Install PyInstaller
pip install pyinstaller
# Build (Windows)
pyinstaller --onefile --windowed --icon=assets/icon.ico main.py
# Output in dist/main.exe- β Use 12+ characters
- β Mix uppercase, lowercase, digits, symbols
- β Avoid personal information
- β Use a unique password (not used elsewhere)
- β Never share your master password
- β Regular security audits
- β Update weak/breached passwords immediately
- β Use unique passwords for each site
- β Enable auto-lock features
- β Store vault backups securely
- β Only use on trusted devices
- β Regenerate token if compromised
- β Lock vault when not in use
MIT License - see LICENSE file for details.
- Have I Been Pwned - Breach detection API
- CustomTkinter - Modern UI framework
- OWASP - Security guidelines
For issues, questions, or feature requests, please open an issue on GitHub.
PassGuard - Enterprise security, personal control. π