A secure, command-line password manager built with Python. Features strong AES encryption, SHA-256 hashing, and local MySQL database storage. Store, retrieve, and generate passwords with confidence using industry-standard cryptographic practices and a clean, intuitive CLI interface
- AES-256-CBC encryption with HMAC authentication
- PBKDF2 key derivation (100,000 iterations)
- Salt-based protection against rainbow table attacks
- Device-specific secrets for additional security layer
- No cloud storage - your passwords stay on your device
- Python 3.8+
- MySQL Server
- Clone the repository:
git clone https://github.com/MartinXCVI/password-manager.git
cd password-manager- Install dependencies:
pip install -r requirements.txt-
Set up your MySQL database and update src/config/db_config.py
-
Run initial setup:
python -m src.config.config
Create an .env file in the root directory.
DB_HOST=
DB_USER=
DB_PASSWORD=
DB_PORT=
DB_NAME=
DEBUG=
python -m src.password_manager add -s "Gmail" -u "https://gmail.com" -l "[email protected]"
python -m src.password_manager extract -s "Gmail"
python -m src.password_manager extract -s "Gmail" --copy # Copy to clipboard
python -m src.password_manager generate --length 32
- Python argparse - Command-line interface parsing
- MySQL Connector/Python - Database connectivity
- hashlib - Cryptographic hashing (SHA-256)
- getpass - Secure password input
- python-dotenv - Handle of environment variables within Python apps
- Rich - Terminal formatting and colors
- cryptography - Modern cryptographic library for Python
- PBKDF2 - Password-based key derivation
- Salt (Cryptography)
- pyperclip - Cross-platform clipboard operations
- Python random - Secure random generation
- Python string - String constants for password generation
This project is licensed under the MIT License.