htpasswd在线生成工具
站长工具
在线生成Apache htpasswd密码文件,支持bcrypt、MD5(APR1)、SHA、crypt等多种加密算法。支持单个和批量生成,提供Apache/Nginx配置示例,是Web服务器认证配置的必备工具
加密算法点击快速选择加密算法
加密算法:
MD5 (Apache APR1) Apache 默认,平衡性好
工具介绍
htpasswd 是 Apache Web 服务器用于 HTTP Basic 认证的用户文件。本工具可在线生成 htpasswd 格式的密码条目,支持多种加密算法,无需安装命令行工具。
生成的内容格式为 username:hashed_password,每行一个用户,保存为 .htpasswd 文件即可使用。
算法对比
| 算法 | 格式 | 安全性 | 速度 | 说明 |
|---|---|---|---|---|
| bcrypt | $2y$10$salt+hash | 极高 | 较慢 | 最安全的选择,支持加盐,抗暴力破解 |
| MD5 (APR1) | $apr1$salt$hash | 中等 | 快 | Apache 默认格式,平衡安全性和性能 |
| SHA | {SHA}base64hash | 较低 | 极快 | SHA-1 哈希,安全性已不足 |
| crypt | salthash | 低 | 快 | 传统 Unix 加密,仅 8 字符密码 |
| 明文 | username:password | 无 | 无 | 不加密,仅用于调试和测试环境 |
使用场景
| 应用场景 | 推荐算法 | 说明 |
|---|---|---|
| Apache 目录保护 | bcrypt/MD5 | 为特定目录设置访问密码,防止未授权访问 |
| SVN 版本控制 | MD5 (APR1) | 为 SVN 仓库配置用户认证文件 |
| Nginx 基础认证 | bcrypt/MD5 | 配合 Nginx auth_basic 实现简单认证 |
| 内部系统保护 | bcrypt | 为管理后台、测试环境等添加访问控制 |
| API 接口保护 | bcrypt | 为 REST API 添加 Basic Auth 认证 |
| 开发调试 | 明文 | 本地开发时快速创建测试认证文件 |
配置示例
# Apache 配置示例
<Directory "/var/www/html/protected">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
# Nginx 配置示例
location /admin {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}常见问题
htpasswd 文件放在哪里?
建议放在 Web 根目录之外(如 /etc/apache2/.htpasswd),防止通过 URL 直接访问。Nginx 也建议放在 /etc/nginx/ 目录下。
bcrypt 和 MD5 怎么选?
生产环境推荐 bcrypt,安全性更高;如果需兼容老系统或追求性能,选 MD5 (APR1)。明文仅用于测试。
如何验证 htpasswd 是否生效?
访问受保护的目录,浏览器应弹出认证对话框。输入正确用户名密码后可访问,否则返回 401。
Nginx 如何使用 htpasswd?
在 location 块中添加:auth_basic "Restricted"; auth_basic_user_file /path/to/.htpasswd; 然后重启 Nginx。
如何添加新用户到现有 htpasswd 文件?
使用本工具生成新条目,然后追加到现有 .htpasswd 文件末尾(每行一个用户),注意不要覆盖已有内容。
htpasswd 支持中文用户名吗?
技术上支持,但不推荐。部分系统可能对中文编码处理不一致,建议使用英文字母和数字。
密码有长度限制吗?
crypt 算法限制 8 字符;bcrypt 最大 72 字节;MD5/SHA 无实际限制。建议密码至少 8 位,包含字母和数字。