A secure, command-line password manager built with Python that uses strong encryption to protect your sensitive data.
- Strong Encryption: Uses Fernet symmetric encryption (AES 128)
- SQLite Database: Secure local storage with encrypted passwords
- CLI Interface: Simple command-line interface
- Organized Display: Beautiful tabulated output using
tabulate - Auto Key Management: Automatic encryption key generation and management
- Secure by Design: Passwords are encrypted before storage
- Python 3.7 or higher
- pip package manager
-
Clone the repository
git clone https://github.com/LORDSINE/PasswordManager.git cd PasswordManager -
Create and activate a virtual environment (recommended)
On Windows:
python -m venv .venv .venv\Scripts\activate
On macOS/Linux:
python3 -m venv .venv source .venv/bin/activate -
Upgrade pip to latest version
python -m pip install --upgrade pip
-
Install dependencies
pip install -r requirements.txt
-
Run the password manager
python -m vault.cli
| Command | Description | Example |
|---|---|---|
add |
Add a new password entry | Stores service, username, and password |
get |
Retrieve a specific entry | Shows password for a service |
list |
Show all stored services | Displays all service names |
delete |
Remove an entry | Deletes service and its data |
exit |
Exit the program | Closes the password manager |
Adding a new entry:
vault> add
> Service: GitHub
> Username: john.doe@email.com
> Password: mySecurePassword123
New Entry Saved!!!
Retrieving an entry:
vault> get
> Service: GitHub
┌─────────┬────────────────────┬──────────────────────┐
│ Service │ Username │ Password │
├─────────┼────────────────────┼──────────────────────┤
│ GitHub │ john.doe@email.com │ mySecurePassword123 │
└─────────┴────────────────────┴──────────────────────┘
PasswordManager/
├── vault/ # Main package
│ ├── __init__.py # Package initialization
│ ├── cli.py # Command-line interface
│ ├── crypto.py # Encryption/decryption functions
│ └── storage.py # Database operations
├── requirements.txt # Project dependencies
├── README.md # Project documentation
└── .gitignore # Git ignore rules
- Algorithm: Fernet (AES 128 in CBC mode with HMAC SHA256 for authentication)
- Key Storage: Auto-generated 256-bit key stored in
vault.key - Data Protection: Only passwords are encrypted; service names and usernames are stored in plaintext for search functionality
CREATE TABLE vault (
id INTEGER PRIMARY KEY AUTOINCREMENT,
service TEXT UNIQUE,
username TEXT,
password TEXT -- Encrypted
);vault.db- SQLite database with encrypted passwordsvault.key- Encryption key (keep this file secure!)
- Keep your
vault.keyfile secure - Anyone with this file can decrypt your passwords - Backup your data - Store
vault.dbandvault.keyin a secure location - Use strong master passwords when storing critical accounts
- Regular updates - Keep dependencies updated for security patches
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
LORDSINE
- GitHub: @LORDSINE
- v0.1.0 (September 2025) - Initial release
- Basic CLI functionality
- Fernet encryption implementation
- SQLite storage backend
- Core commands: add, get, list, delete




