A secure, locally-stored password manager built with Python. Store and manage your passwords safely with strong encryption and multi-user support.
- Strong Encryption: Uses Fernet (AES-256) encryption with Scrypt key derivation
- Multi-User Support: Multiple users can maintain separate vaults on the same system
- Local Storage: All data stored locally in SQLite database - no cloud dependencies
- Secure Master Password: Master password requirements enforce strong security practices
- Service Management: Store multiple accounts per service (e.g., personal and work Gmail)
- Safety Features: Confirmation prompts for destructive actions, attempt limits on login
- Python 3.12+
- Dependencies listed in
requirements.txt
- Clone the repository:
git clone https://github.com/yourusername/cosmicc-password-manager.git
cd cosmicc-password-manager
- Install dependencies:
pip install -r requirements.txt
- Run the application:
python main.py
- Run the application
- Select "Create an account"
- Choose an alphanumeric username
- Create a master password meeting these requirements:
- At least 15 characters long
- At least one uppercase letter
- At least one lowercase letter
- At least one number
- At least one special character (!@#$%^&*(),.?:|<>_-)
Once signed in, you can:
- Add a new login: Store credentials for a service
- List all logins: View all stored credentials
- Search by service name: Find specific login(s)
- Delete a login: Remove stored credentials
- User settings: Change username or delete account
- Sign out: Switch users or exit safely
- Encrypted Storage: All passwords encrypted with your master password as the key
- Secure Key Derivation: Uses Scrypt (N=2^14, r=8, p=1) for key generation
- Login Attempt Limits: Maximum 5 attempts before lockout
- Per-User Encryption: Each user's vault is encrypted with their unique master password
- No Password Recovery: Forgotten master passwords cannot be recovered (by design)
Run the test suite with pytest:
pytest tests/
Tests cover:
- Database operations
- Encryption/decryption
- User management
- Vault operations
- Expand unit test coverage
- Add password generator functionality
- Implement password strength checker for stored passwords
- GUI interface (likely using tkinter or PyQt)
- Two-factor authentication support for master password
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request