Htpasswd
by @bytesagain-lab
Generate htpasswd entries for Apache/Nginx basic auth password management. Use when creating credentials, managing password files, or verifying users.
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
set -euo pipefail)openssl β for password hashing and verificationgrep, sed β standard text utilitiesWhen 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 MySecretPassAdd another user
htpasswd add /etc/nginx/.htpasswd editor AnotherPassUse SHA-512 for stronger hashing
HTPASSWD_ALGO=sha512 htpasswd add /etc/nginx/.htpasswd secure_user StrongPassList all users
htpasswd list /etc/nginx/.htpasswdVerify a password
htpasswd verify /etc/nginx/.htpasswd admin MySecretPassDelete 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
640 permissions (owner read/write, group read)apr1 (Apache MD5) β widely compatibleHTPASSWD_ALGO=sha512 for stronger hashing on modern systems: or whitespace charactersadd*Powered by BytesAgain | bytesagain.com | hello@bytesagain.com*
β‘ When to Use
π‘ Examples
# Create a new htpasswd file
htpasswd create /etc/nginx/.htpasswd admin MySecretPassAdd another user
htpasswd add /etc/nginx/.htpasswd editor AnotherPassUse SHA-512 for stronger hashing
HTPASSWD_ALGO=sha512 htpasswd add /etc/nginx/.htpasswd secure_user StrongPassList all users
htpasswd list /etc/nginx/.htpasswdVerify a password
htpasswd verify /etc/nginx/.htpasswd admin MySecretPassDelete 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 |