Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure Password Generator & Manager

A modular, command-line interface (CLI) password utility built to bridge the gap between basic scripting and secure software architecture. This project moves away from standard "tutorial" habits by implementing cryptographically secure character selection, multi-file modularity, and memory-safe data decryption.


Key Features & Architectural Choices

  • Multi-File Modularity: Split cleanly into generator.py (core logic engine) and main.py (user interface) to enforce separation of concerns.
  • Cryptographically Secure: Replaced the standard pseudo-random random module with Python's built-in secrets module to generate truly unpredictable tokens.
  • Shoulder-Surfing Protection: Passwords are fully obfuscated using Base64 encoding before hitting the local file system (passwords.txt).
  • RAM-Only Decryption: To eliminate permanent storage footprints, saved credentials are read, decoded, and held strictly in volatile system memory (RAM) during viewing, disappearing safely upon program termination.
  • Defensive Error Handling: Built custom input sanitization routines and comprehensive try/except loops to capture type errors and handle user input gracefully.

Project Structure

├── generator.py   # Backend engine (generation, encoding, RAM-decoding, File I/O)
├── main.py        # Frontend CLI controller (menus, loops, validation, user prompts)
└── passwords.txt  # Persistent storage (auto-generated, contains encoded credentials)


Concepts Applied

  • File I/O Optimization: Utilizing context managers (with open()) to guarantee safe file closures and using append mode ("a") to prevent data overwrites.
  • List Comprehensions: Streamlining random selection routines with highly optimized, single-line Python loops.
  • Input Sanitization: Applying string manipulation methods (.strip().lower()) natively across input streams to maintain state integrity despite user typos.
  • Decoupled Module Imports: Using if __name__ == "__main__": boilerplate boundaries to ensure clean execution workflows when scripts act as standalone utilities or imported libraries.

How to Run

  1. Open your terminal in the project directory.
  2. Execute the controller script:
python main.py
  1. Follow the interactive prompts to generate secure keys or view your temporary, memory-loaded password cache.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages