Skip to content

Latest commit

 

History

History
131 lines (107 loc) · 3.63 KB

README.md

File metadata and controls

131 lines (107 loc) · 3.63 KB

Password Manager

Overview

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.


Project Structure

The project is organized into three directories:

  1. 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.
  2. 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.
  3. 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).

Key Features

1. Secure Login

  • Authentication based on hashed master credentials.
  • Capability to update master username and password.

2. Password Generator

  • Generate fully random or customized passwords.
  • Options for including digits, letters, and special characters.

3. Password Storage

  • Stores credentials in an encrypted data.csv file.
  • Add, read, update, and delete password entries securely.

4. Password Strength Checker

  • Analyzes password strength based on length, complexity, and character diversity.

5. Detailed Logging System

  • 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.

Setup Instructions

Prerequisites

Ensure Python 3.8+ is installed on your system.

Install Dependencies

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

Logging System

File Structure

Logs are stored in the logs/ directory. Each log file is named -.txt (e.g., 2024-11-15-0.txt).

Log Levels

  1. DEBUG: Logs debugging details.
  2. INFO: Logs successful operations.
  3. WARNING: Logs non-critical issues.
  4. ERROR: Logs invalid inputs or failures.
  5. CRITICAL: Logs critical application crashes.

Security Features

Encryption:

Passwords are encrypted using Fernet encryption. Encryption key is stored in key.txt.

Master Credentials:

Stored as SHA-256 hashes in main.txt for enhanced security.

Logging:

Comprehensive logs for tracking system activity and errors.

Enjoy :)