Skip to main content

Secure password generator CLI

Project description

Password Manager CLI

A secure password manager with storage and generation capabilities.

Features

  • 🔒 Secure password storage with AES-256 encryption
  • 🔑 Master password protection with Argon2 hashing
  • 🛠️ Password generation with customizable complexity
  • 📂 Organized storage with website/email metadata
  • 🔍 Filterable password entries
  • 📊 Rich terminal interface for viewing entries

Installation

  1. Install Poetry (if not already installed):
pip install poetry
  1. Clone the repository and install dependencies:
git clone https://github.com/huelight/password-cli.git
cd password-manager
poetry install
  1. Make the CLI globally available:
poetry build
pip install dist/password_manager-*.whl

Usage

Initialize the Password Manager Before using the manager, you need to set up a master password:

pwdgen init

Save a New Password Entry Save a new password with optional generation:

pwdgen save --website example.com --email user@example.com [--password "mypassword" | --generate]

List Password Entries View stored passwords with filtering options:

pwdgen list [--website example.com] [--show-password]

Generate Secure Passwords Generate passwords without saving:

pwdgen generate [--length 16] [--no-special]

Command Reference

pwdgen init

Initialize the password manager with a master password.

Options:

  • No additional options

Example:

pwdgen init
pwdgen save

Save a new password entry.

Options:

Option Description
--website Website or service name (required)
--email Associated email (required)
--password Password to store (optional)
--generate Generate secure password (optional)

Examples:

# Save with manual password
pwdgen save --website example.com --email user@example.com --password "secure123!"

# Save with generated password
pwdgen save --website example.com --email user@example.com --generate
pwdgen list

List stored password entries.

Options:

Option Description
--website Filter by website name (optional)
--show-password Show decrypted passwords (optional)

Examples:

# List all entries
pwdgen list

# Show passwords for specific website
pwdgen list --website example --show-password
pwdgen generate

Generate secure passwords.

Options:

Option Description
--length Password length (default: 16)
--no-special Exclude special characters (optional)

Examples:

# Generate standard password
pm generate

# Generate 20-character password without special chars
pm generate --length 20 --no-special

Security Features

  • 🔐 AES-256 encryption for stored passwords
  • 🔑 Argon2 hashing for master password
  • 🧂 Unique salts for each password entry
  • 🔄 600,000 PBKDF2 iterations for key derivation
  • 🚫 No password storage in plaintext
  • ⚠️ No recovery mechanism - lose master password = lose access

Password Requirements

Master password must:

  • Be at least 12 characters long
  • Contain uppercase and lowercase letters
  • Include at least one number
  • Include at least one special character

Generated passwords:

  • Default to 16 characters
  • Include all character types by default
  • Guarantee minimum complexity

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a pull request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

password_cli_app-0.1.1.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

password_cli_app-0.1.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file password_cli_app-0.1.1.tar.gz.

File metadata

  • Download URL: password_cli_app-0.1.1.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.10.12 Linux/6.8.0-51-generic

File hashes

Hashes for password_cli_app-0.1.1.tar.gz
Algorithm Hash digest
SHA256 008dd3a047bdf4980d1eac550fe9df0149e3b1e2bfeb6a2f71f7722932f231aa
MD5 acbd347b0730dba60bc88949a29b321b
BLAKE2b-256 dc12757394fdd89f6cf727a9eda4cc5a577c082d6142b1948176b13cdd997d7b

See more details on using hashes here.

File details

Details for the file password_cli_app-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: password_cli_app-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.10.12 Linux/6.8.0-51-generic

File hashes

Hashes for password_cli_app-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 530e04ef44c7a455fc9f92b1b6ef6b0a134fc2053a20c00c6e0cc59550ab359f
MD5 61177e476c0cd2fc478553744e6f0a20
BLAKE2b-256 861a08b22f15614199a06430052cbcdfff8df257f274c57763b3a3ed4ebc4424

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page