开发者工具

.htpasswd 文件生成器

在浏览器中安全生成用于 Apache 和 Nginx Basic 认证的 .htpasswd 文件。支持 bcrypt、APR1-MD5 和 SHA-1。密码不会发送到服务器。

使用提示

  • 推荐使用 bcrypt:目前最安全的算法,适用于 Apache 2.4+ 和 Nginx。成本值越高,哈希计算越慢,抵御暴力破解的能力越强(通常推荐值为 10)。
  • APR1-MD5$apr1$)适用于需要兼容 Apache 2.2 或更旧版本的场景,几乎所有 Apache 和 Nginx 版本都支持。
  • SHA-1{SHA})抗碰撞性较弱,不推荐使用。仅在必须向后兼容的旧环境中使用。
  • 建议将 .htpasswd 文件放置在 Web 根目录(DocumentRoot)之外,防止被直接访问。
  • 务必配合 HTTPS 使用。Basic 认证的凭据仅经过 Base64 编码,未加密,在 HTTP 连接下相当于明文传输。

常见问题

.htaccesshttpd.conf 中添加以下配置,并将 AuthUserFile 指向生成的 .htpasswd 文件路径:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

nginx.conf 或相应的 server 块中添加:
location /admin {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
Nginx 同时支持 bcrypt 和 APR1-MD5。

建议优先选择 bcrypt,适用于 Apache 2.4+ 和 Nginx。APR1-MD5 仅在需要兼容旧版 Apache 时使用。除非有特殊需求,否则不要选择 SHA-1。

将生成的行(用户名:哈希值 格式)追加到文件末尾即可。每行对应一个用户,空行和以 # 开头的注释行会被忽略。

安全。所有哈希计算均在浏览器中完成,密码不会传输到服务器。请确保在 HTTPS 页面下使用本工具,并妥善保管生成的文件。
ツールくん

闲话 ― Basic 认证为何历久不衰

HTTP Basic 认证于 1999 年由 RFC 2617 定义(后更新为 RFC 7617),原理极为简单:将用户名与密码以 : 拼接,Base64 编码后放入 Authorization 请求头。

正是这种简洁性让它沿用至今。它常被用于测试环境、内部工具,或与 IP 白名单结合构成双重防护。只需两三行配置,无需额外中间件或数据库,是最轻量的访问控制方案之一。

当然也有局限:没有注销机制(关闭浏览器前会话持续),不支持密码过期管理和多因素认证。对于安全要求较高的正式服务,建议考虑 OAuth 2.0 或 OIDC。