反馈

Htpasswd生成


服务器配置示例
Nginx(放在 server 或 location 块内)
location /admin { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; }
Apache(.htaccess 或 <Directory> 块)
AuthType Basic AuthName "Restricted" AuthUserFile /var/www/.htpasswd Require valid-user
密码只在浏览器本地做哈希,不上传。.htpasswd 文件建议放在网站根目录之外。生成后请先在测试环境验证再上线。

📖 工具说明

1. 这个工具做什么

生成 Web 服务器 HTTP Basic Auth 用的 .htpasswd 文件内容(用户名:哈希 每行一条),不用登录服务器跑 htpasswd 命令。

密码只在浏览器本地做哈希,不上传。

2. 算法怎么选

算法 格式前缀 说明
bcrypt $2a$ 目前最推荐。cost 每 +1 计算量翻倍,Web 认证一般选 10–12。需 Apache 2.4+ 或 nginx 1.0.3+
apr1-MD5 $apr1$ Apache 传统格式,兼容性最好。已按标准 1000 轮迭代实现,结果与 openssl passwd -apr1 一致。MD5 强度一般
SHA1 {SHA} 无盐、单轮,容易被彩虹表破解,只在必须兼容老系统时用

原来的 "Crypt (Unix DES)" 选项已移除:它限制密码 8 位、强度很弱,现代 htpasswd 默认也不再用。

3. 服务器配置

Nginx(放在 server 或 location 块内):

location /admin {
    auth_basic           "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Apache(.htaccess 或 <Directory> 块):

AuthType Basic
AuthName "Restricted"
AuthUserFile /var/www/.htpasswd
Require valid-user

改完配置记得 reload:nginx -s reload 或 apachectl graceful。

4. 常见问题(FAQ)

Q:.htpasswd 放哪里? A:放在网站根目录之外(如 /etc/nginx/、/var/www/ 而不是 /var/www/html/),避免被人直接用 URL 下载。

Q:生成的哈希在服务器上验证不过? A:先确认服务器版本支持所选算法(bcrypt 需要较新版本)。apr1 兼容性最好,可先用 apr1 排除算法问题。密码里的空格是有效字符,本工具不会 trim,注意两边不要多打空格。

Q:bcrypt 结果每次都不一样? A:正常。bcrypt 每次用随机盐,同一密码每次哈希都不同,但都能通过验证。apr1 也是随机盐。

Q:能同时管理很多用户吗? A:用批量模式,一次生成多行,追加到已有 .htpasswd 文件即可(同名用户以最后一行为准,建议先去重)。

Q:密码会上传吗? A:不会。哈希计算全部在浏览器本地完成。


相关:Bcrypt 加密校验 · MD5 加密 · SHA 家族 · 随机密码生成 · Base64 编解码。

📖 了解原理

📖 相关推荐