htpasswd 密码生成
生成 Apache/Nginx Basic 认证所需的 .htpasswd 文件条目,支持 Bcrypt、MD5、SHA1 算法
Cost 越高越安全,但生成越慢(10 约需 0.1秒,12 约需 0.4秒)
正在计算 Bcrypt 哈希,请稍候...
关于 htpasswd 密码生成
- .htpasswd 文件用于 Apache/Nginx 的 HTTP Basic 认证,每行格式为
用户名:哈希密码 - Bcrypt 是目前最安全的选择,Apache 2.4+ 和 Nginx 均支持;MD5($apr1$)兼容性最好
- 支持单条生成、批量生成(多用户)和验证(检查密码是否匹配已有哈希)三种模式
操作说明
- 单条模式:输入用户名和密码,选择算法,点击「生成」
- 批量模式:每行输入
用户名:密码,一次生成多条记录 - 验证模式:输入用户名、密码和已有哈希,验证密码是否正确(支持 Bcrypt、APR1-MD5、SHA1、明文)
- 点击「下载 .htpasswd」将结果保存为文件,可直接部署到服务器
注意事项
- Bcrypt 哈希每次生成结果不同(含随机盐),但验证时均有效,这是正常现象
- Bcrypt Cost 建议设为 10~12,过低(≤6)安全性不足,过高(≥13)生成时间过长
- 所有哈希计算在浏览器本地完成,密码不会上传服务器
- 明文模式仅用于测试,生产环境严禁使用
HTTP Basic 认证知识详解
各哈希算法安全性对比
| 算法 | 前缀 | 安全性 | 速度 | 推荐 |
|---|---|---|---|---|
| Bcrypt | $2y$ | ⭐⭐⭐⭐⭐ | 慢(可调) | ✅ 推荐 |
| MD5($apr1$) | $apr1$ | ⭐⭐⭐ | 中等 | ⚠️ 可用 |
| SHA1 | {SHA} | ⭐⭐ | 快 | ❌ 不推荐 |
| 明文 | 无 | ⭐ | 最快 | ❌ 禁止 |
Nginx Basic 认证配置示例
server {
listen 80;
server_name example.com;
location /admin/ {
# 启用 Basic 认证
auth_basic "管理后台";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:8080;
}
}
命令行生成 htpasswd
# 安装 apache2-utils(Ubuntu/Debian)
sudo apt install apache2-utils
# 创建新文件并添加用户(Bcrypt)
htpasswd -cB /etc/nginx/.htpasswd admin
# 向已有文件追加用户
htpasswd -B /etc/nginx/.htpasswd user2
# 验证密码
htpasswd -v /etc/nginx/.htpasswd admin
# 删除用户
htpasswd -D /etc/nginx/.htpasswd user2