🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub✦ BytesAgain

Htpasswd

by @bytesagain-lab

Generate htpasswd entries for Apache/Nginx basic auth password management. Use when creating credentials, managing password files, or verifying users.

Versionv3.0.0
Downloads644
Installs1
TERMINAL
clawhub install htpasswd

πŸ“– About This Skill


name: HtPasswd description: "Generate htpasswd entries for Apache/Nginx basic auth password management. Use when creating credentials, managing password files, or verifying users." version: "3.0.0" author: "BytesAgain" homepage: https://bytesagain.com source: https://github.com/bytesagain/ai-skills tags: ["htpasswd","password","auth","apache","nginx","security"] categories: ["Developer Tools", "Utility"]

HtPasswd

A real htpasswd file manager for Apache/Nginx HTTP basic authentication. Create password files, add/remove users, verify passwords, and list users. Supports apr1 (Apache MD5), SHA-256, and SHA-512 hash algorithms via openssl.

Commands

| Command | Description | |---------|-------------| | htpasswd create | Create a new htpasswd file with the first user (fails if file exists) | | htpasswd add | Add a user to an existing file (or update password if user exists) | | htpasswd delete | Remove a user from the htpasswd file | | htpasswd verify | Verify a user's password (supports apr1, sha256, sha512, sha1, crypt) | | htpasswd list | List all users with their hash algorithm type | | htpasswd version | Show version | | htpasswd help | Show available commands and usage |

Configuration

| Variable | Default | Description | |----------|---------|-------------| | HTPASSWD_ALGO | apr1 | Hash algorithm: apr1, sha256, or sha512 |

Requirements

  • Bash 4+ (set -euo pipefail)
  • openssl β€” for password hashing and verification
  • grep, sed β€” standard text utilities
  • No external dependencies or API keys
  • When to Use

    1. Setting up basic auth β€” htpasswd create /etc/nginx/.htpasswd admin secret to create a new file 2. Managing users β€” htpasswd add to add users, htpasswd delete to remove them 3. Password verification β€” htpasswd verify to check if a password is correct 4. Security audits β€” htpasswd list shows all users and their hash types 5. Stronger hashing β€” Set HTPASSWD_ALGO=sha512 for SHA-512 instead of default apr1

    Examples

    # Create a new htpasswd file
    htpasswd create /etc/nginx/.htpasswd admin MySecretPass

    Add another user

    htpasswd add /etc/nginx/.htpasswd editor AnotherPass

    Use SHA-512 for stronger hashing

    HTPASSWD_ALGO=sha512 htpasswd add /etc/nginx/.htpasswd secure_user StrongPass

    List all users

    htpasswd list /etc/nginx/.htpasswd

    Verify a password

    htpasswd verify /etc/nginx/.htpasswd admin MySecretPass

    Delete a user

    htpasswd delete /etc/nginx/.htpasswd editor

    Example Output

    $ htpasswd create /tmp/.htpasswd admin secret123
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  htpasswd File Created                           β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚  File:     /tmp/.htpasswd                         β”‚
    β”‚  User:     admin                                  β”‚
    β”‚  Algo:     apr1                                   β”‚
    β”‚  Perms:    640 (owner rw, group r)                β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚  βœ… File created with 1 user                     β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    $ htpasswd list /tmp/.htpasswd β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ htpasswd Users β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ File: /tmp/.htpasswd β”‚ β”‚ Users: 2 β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 1. admin [apr1 (MD5) ] β”‚ β”‚ 2. editor [sha512 ] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    $ htpasswd verify /tmp/.htpasswd admin secret123 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Password Verification β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ File: /tmp/.htpasswd β”‚ β”‚ User: admin β”‚ β”‚ Result: βœ… Password CORRECT β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    Security Notes

  • Files are created with 640 permissions (owner read/write, group read)
  • Default algorithm is apr1 (Apache MD5) β€” widely compatible
  • Use HTPASSWD_ALGO=sha512 for stronger hashing on modern systems
  • Usernames cannot contain : or whitespace characters
  • Existing users get their password replaced when using add

  • *Powered by BytesAgain | bytesagain.com | hello@bytesagain.com*

    ⚑ When to Use

    TriggerAction
    2. **Managing users** β€” `htpasswd add` to add users, `htpasswd delete` to remove them
    3. **Password verification** β€” `htpasswd verify` to check if a password is correct
    4. **Security audits** β€” `htpasswd list` shows all users and their hash types
    5. **Stronger hashing** β€” Set `HTPASSWD_ALGO=sha512` for SHA-512 instead of default apr1

    πŸ’‘ Examples

    # Create a new htpasswd file
    htpasswd create /etc/nginx/.htpasswd admin MySecretPass

    Add another user

    htpasswd add /etc/nginx/.htpasswd editor AnotherPass

    Use SHA-512 for stronger hashing

    HTPASSWD_ALGO=sha512 htpasswd add /etc/nginx/.htpasswd secure_user StrongPass

    List all users

    htpasswd list /etc/nginx/.htpasswd

    Verify a password

    htpasswd verify /etc/nginx/.htpasswd admin MySecretPass

    Delete a user

    htpasswd delete /etc/nginx/.htpasswd editor

    Example Output

    $ htpasswd create /tmp/.htpasswd admin secret123
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  htpasswd File Created                           β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚  File:     /tmp/.htpasswd                         β”‚
    β”‚  User:     admin                                  β”‚
    β”‚  Algo:     apr1                                   β”‚
    β”‚  Perms:    640 (owner rw, group r)                β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚  βœ… File created with 1 user                     β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    $ htpasswd list /tmp/.htpasswd β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ htpasswd Users β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ File: /tmp/.htpasswd β”‚ β”‚ Users: 2 β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 1. admin [apr1 (MD5) ] β”‚ β”‚ 2. editor [sha512 ] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    $ htpasswd verify /tmp/.htpasswd admin secret123 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Password Verification β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ File: /tmp/.htpasswd β”‚ β”‚ User: admin β”‚ β”‚ Result: βœ… Password CORRECT β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    βš™οΈ Configuration

    | Variable | Default | Description | |----------|---------|-------------| | HTPASSWD_ALGO | apr1 | Hash algorithm: apr1, sha256, or sha512 |