← 返回工具箱

htpasswd 生成

HTPASSWD · 编解码与安全

生成 Apache 用的 htpasswd 条目,支持 bcrypt、apr1(MD5)与 SHA-1 三种格式,本地计算口令哈希;配 Nginx / Basic Auth 时随手造一条。

结果
大小写分隔前缀后缀
三种格式:bcrypt($2b$…,可选懒加载 bcryptjs)、apr1(Apache MD5-crypt)、SHA-1({SHA}…)。口令仅在本机计算。

>_ 使用指南 · GUIDE

在本地生成 Apache 用的 htpasswd 条目,支持 bcrypt、apr1(MD5)与 SHA-1 三种哈希格式。输入用户名与口令,选好格式,就能得到一行 username:hash,直接追加进 .htpasswd 文件即可用于 Basic Auth。口令全程在本机计算,不会上传。

三种格式各有取舍:bcrypt 最安全,带盐且计算成本可调,推荐新项目使用;apr1 是 Apache 的传统 MD5-crypt,兼容性最好,适合仍在用老版本 Apache 的场景;SHA-1 已被弱化,仅用于必须兼容的旧环境。.htpasswd 文件每行一条 用户名:哈希,要加多个用户逐行追加即可。Nginx 的 Basic Auth 也能直接读同款 .htpasswd 文件,因此同一份生成结果两边通用。

典型步骤:

  1. 输入用户名与口令:填写要创建的账号与密码
  2. 选哈希格式:在 bcrypt / apr1 / SHA-1 中选择
  3. 生成条目:得到一行 username:hash
  4. 复制并追加:粘贴进 .htpasswd,保存生效

>_ 常见问题 · FAQ

Q1 · 三种格式该怎么选?

新项目一律优先 bcrypt,它带盐、抵御彩虹表,且可通过成本参数调慢暴力破解。需要兼容较老的 Apache 或已有工具链时用 apr1。SHA-1 已不推荐,只有在对方系统强制要求时才用。安全性与兼容性权衡下,默认 bcrypt。

Q2 · 生成的条目怎么放进 .htpasswd 文件?

把生成的整行 username:hash 追加到 .htpasswd 末尾即可,注意每行一个用户、行内不要有多余空格。Apache 配置里用 AuthUserFile 指向该文件、AuthType Basic、Require valid-user 启用。新增用户就再追加一行,不要覆盖已有行。

Q3 · 为什么 Nginx 也能用 htpasswd 生成的结果?

Nginx 的 auth_basic_user_file 读取的就是与 Apache.htpasswd 相同的格式,因此同一份文件两边通用。只要哈希格式是 Nginx 支持的(如 bcrypt 或 apr1),把生成结果放进 .htpasswd 再在 Nginx 配置里引用即可。

Q4 · 口令会不会被上传?

不会。口令仅在你的浏览器本地计算成哈希,不会发送到任何服务器,页面关闭即无残留。哈希本身可以安全地存入 .htpasswd,因为它不可逆;但仍建议只在受控环境中操作,避免口令被旁人看到。

Q5 · 和 MD5、HMAC 工具的分工是什么?

那两个是通用工具:MD5 产出裸摘要(已不适合存密码),HMAC 产出带密钥的签名。本工具产出的是 htpasswd 专用的文件行格式,把用户名、分隔符与适配 Web 服务器的哈希合成一行,可直接喂给 Apache / Nginx,而不是给你一个裸哈希值。

嵌入代码

把下面的代码复制到你的网页,即可将本工具嵌入为 iframe(自动隐藏导航与页脚)。

高度px
此工具在你的浏览器本地运行,输入内容不会上传。按 Ctrl K 可随时切换到其他工具。