A secure Python-based Password Manager for storing, managing, and generating passwords. Features include encryption, customizable password generation, secure login, logging functionality, and easy retrieval or updating of stored credentials.
The project is organized into three directories:
-
code/
Contains the main application code:main.py
: Entry point of the application.functions.py
: Handles password storage and operations.generator.py
: Provides random and customizable password generation.login.py
: Manages authentication for master credentials.checker.py
: Analyzes password strength.log.py
: Logs system events and errors.
-
data/
Holds critical files for operation:data.csv
: Stores the encrypted password data.key.txt
: Stores the Fernet encryption key.main.txt
: Stores hashed master credentials (username, password).requirements.txt
: Stores the required libraries.README.md
: Stores this file.
-
logs/
- Holds all the log files generated by the application.
- Each log file is named as
<date>-<index>.txt
(e.g.,2024-11-15-0.txt
).
- Authentication based on hashed master credentials.
- Capability to update master username and password.
- Generate fully random or customized passwords.
- Options for including digits, letters, and special characters.
- Stores credentials in an encrypted
data.csv
file. - Add, read, update, and delete password entries securely.
- Analyzes password strength based on length, complexity, and character diversity.
- Logs all system events and errors for debugging and monitoring.
- Logs are categorized by severity:
- DEBUG: Detailed information for debugging.
- INFO: Successful operations and feature access.
- WARNING: Non-critical issues or updates.
- ERROR: Errors caused by invalid inputs or failures.
- CRITICAL: Major application crashes.
Ensure Python 3.8+ is installed on your system.
Run the following command to install required libraries:
pip install -r requirements.txt
requirements.txt contains the following third-party libraries:
csv
hashlib
random
string
cryptography
datetime
pathlib
Directory Structure Ensure the following directory structure is maintained:
.
├── code/
│ ├── main.py
│ ├── functions.py
│ ├── generator.py
│ ├── login.py
│ ├── checker.py
│ └── log.py
├── data/
│ ├── data.csv
│ ├── key.txt
│ ├── main.txt
│ ├── readme.md
│ └── requirements.txt
├── logs/
Running the Application Start the application by running:
python main.py
Logs are stored in the logs/ directory. Each log file is named -.txt (e.g., 2024-11-15-0.txt).
- DEBUG: Logs debugging details.
- INFO: Logs successful operations.
- WARNING: Logs non-critical issues.
- ERROR: Logs invalid inputs or failures.
- CRITICAL: Logs critical application crashes.
Passwords are encrypted using Fernet encryption. Encryption key is stored in key.txt.
Stored as SHA-256 hashes in main.txt for enhanced security.
Comprehensive logs for tracking system activity and errors.
Enjoy :)