跳到正文

.htpasswd 生成

.htpasswd Generator

用 bcrypt、APR1 或 SHA 生成 Apache 或 nginx 的基本认证条目。

Basic 认证仍然是给一个预发布站点加上密码最短的路径,它需要的那个文件里放着一个 Apache 和 nginx 都接受的格式的哈希。这里不用本地的 `htpasswd` 程序就能产出那一行。

🔒 完全在你的浏览器里运行htpasswdbasic-authnginxapache

就用这个。$2y$ 格式,Apache 2.4 以上和 nginx 都认。

bcrypt 和 APR1 的哈希全部在你的浏览器里算完。 密码不会被送到任何地方。

怎么用

  1. 输入用户名和密码

    两者都留在标签页里。哈希在这里计算,只有得到的那一行是要拿出页面的。

  2. 除非有什么逼着你不选,否则选 bcrypt

    bcrypt 是这里唯一带真正工作因子的选项。APR1(`$apr1$`)和 SHA 变体之所以存在,是因为旧版 Apache 和一些 nginx 配置要求它们。

  3. 把这一行追加到文件里

    每行一个 `user:hash`。把文件放在网站根目录之外——放在里面,服务器会很乐意把你的密码文件提供给访客。

常见问题

密码会发到哪里去吗?

不会。哈希在你的浏览器里计算,bcrypt 也是,所以生成一次要花上看得见的一小会儿。

Basic 认证安全吗?

它在每个请求里都发送凭据,用 base64 编码。base64 不是加密。走 HTTPS 时,它用来把预发布站点藏起来是够用的。它不是给真实用户用的认证系统:没有锁定,没有会话,没有第二因素。

nginx 不认这个文件。

nginx 读不了 Apache 能读的每一种格式。它对 bcrypt 的支持取决于构建方式,基于 crypt 的变体取决于系统库——哈希被拒绝时,用另一种算法给同一个用户再生成一次。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。