A cryptographically secure password generator with multi-format export capabilities. Built for security professionals and developers who demand military-grade password generation.
- 🔒 Cryptographically Secure — Uses Python's
secretsmodule (CSPRNG), notrandom() - 🎯 Customizable Character Sets — Choose lowercase, uppercase, digits, and symbols
- 💾 Multi-Format Export — Save to TXT, JSON, CSV, or Excel (.xlsx)
- ⚡ Zero Dependencies (except export libraries) — Lightweight core
- 📊 Timestamp Tracking — Automatic date/time logging for each password
- 🎨 Interactive CLI — User-friendly terminal interface
- Python 3.8 or higher (Download Python)
- pip (Python package manager, included with Python)
- Git (Download Git)
- virtualenv or venv (Python Virtual Environments Guide)
git clone https://github.com/mihaiapostol14/SecureCorePasswordGenerator.git
cd SecureCorePasswordGeneratorOn macOS/Linux:
python3 -m venv venv
source venv/bin/activateOn Windows:
python -m venv venv
venv\Scripts\activatepip install --upgrade pip
pip install -r requirements.txtpython generator.py$ python generator.py
Password length: 16
Select characters for password:
Include lowercase (a-z)? (y/n): y
Include uppercase (A-Z)? (y/n): y
Include digits (0-9)? (y/n): y
Include symbols (!@#$)? (y/n): y
Generated password:
X9$mK@pL2qR#vB7w
Save password? (y/n): y
1 - TXT
2 - JSON
3 - CSV
4 - EXCEL
Select file type: 2
✅ Password saved to yours_password.jsonSecureCorePasswordGenerator/
├── generator.py # Main password generation engine
├── requirements.txt # Python dependencies
├── README.md # This file
│
└── helper/
├── __init__.py # Package initializer
└── saver.py # File writer (TXT, JSON, CSV, Excel)
- Language: Python 3.8+
- Core Security:
secretsmodule (cryptographic randomness) - File Formats:
- TXT (plain text)
- JSON (structured data with
json) - CSV (spreadsheet format)
- Excel (.xlsx with
openpyxl)
- Styling:
colorama(cross-platform terminal colors)
- OOP Architecture: Inheritance-based with
FileWriterbase class - Separation of Concerns: Password generation (business logic) vs. file operations (I/O)
- Type Safety: Full type hints throughout (PEP 484)
X9$mK@pL2qR#vB7w
{
"2024-08-26 14:30:45": "X9$mK@pL2qR#vB7w"
}DATE AND TIME,PASSWORD
2024-08-26 14:30:45,X9$mK@pL2qR#vB7w| DATE AND TIME | PASSWORD |
|---|---|
| 2024-08-26 14:30:45 | X9$mK@pL2qR#vB7w |
✅ What We Do Right:
- Uses
secrets.choice()instead ofrandom()(cryptographically secure) - Proper entropy from Python's OS random number generator
- No hardcoded passwords or insecure defaults
- Always use a password manager to store sensitive passwords
- Avoid sharing generated passwords in plain text
- Consider adding password strength validation (entropy calculation)
| Issue | Status | Notes |
|---|---|---|
| No error handling for invalid password length | 🔴 TODO | Add try-except for user input |
| No validation for zero-length passwords | 🔴 TODO | Enforce minimum length |
| Silent failure on invalid file format choice | 🟡 PARTIAL | Should show error message |
| No password strength meter | 💡 FEATURE | Entropy calculation suggested |
colorama==0.4.5 # Cross-platform terminal colors
openpyxl==3.1.2 # Excel file creation/manipulation
et-xmlfile==1.1.0 # XML support for Excel (dependency)
Found a bug or want to improve SecureCore? Follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit changes:
git commit -m "Add your feature" - Push to branch:
git push origin feature/your-feature - Submit a Pull Request
This project is licensed under the MIT License — see LICENSE file for details.
Mihai Apostol — @mihaiapostol14
Have questions? Open an Issue or check the Discussions.
⭐ If this project helped you, please consider giving it a star!