在线 htpasswd 生成器

在浏览器中用用户名和密码,以 bcrypt 或 SHA-1 生成一行 .htpasswd 用户记录。凭据始终留在你的设备上。

htpasswd 生成器在你的浏览器中哈希你的密码——bcrypt 在一个懒加载模块中,SHA-1 通过 Web Crypto API。你输入的用户名和密码绝不会离开你的设备,也绝不会上传到 ArrayKit。

打开 Basic Auth 生成器

关于 htpasswd 生成器

htpasswd 生成器把用户名和密码转成一行用于 Apache 或 nginx HTTP 基本认证的 .htpasswd 记录。可选择 bcrypt——Apache 写作 $2y$ 的推荐加盐方案,或选择传统的 {SHA} 方案(无盐 SHA-1,Base64)以适配较旧的环境。工具会输出一行可直接使用的 user:hash 记录,你可以复制或下载,并追加到你的 .htpasswd 文件,然后用 AuthType Basic 或 nginx 的 auth_basic_user_file 保护一个目录。它适合正在锁定测试站点、内部仪表盘,或反向代理后目录的系统管理员和开发者。bcrypt 哈希每次都用一个全新的随机盐运行,SHA-1 则使用 Web Crypto API——全部在你的浏览器中,因此你输入的密码绝不离开你的设备。

功能特性

如何使用 htpasswd 生成器

  1. 输入你想用来保护目录的用户名和密码
  2. 选择 bcrypt(推荐)或传统的 SHA-1 {SHA} 算法
  3. 复制生成的 user:hash 行,或下载 .htpasswd 文件
  4. 把该行追加到你服务器的 .htpasswd,并从认证配置中引用它

示例

输入

username: admin
password: password
algorithm: SHA-1

输出

admin:{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=

SHA-1 产生 {SHA} + Base64;bcrypt 则会输出 admin:$2y$...。

常见错误与故障排除

常见问题

我该为 .htpasswd 文件使用哪种算法?
对任何通过网络可达的场景使用 bcrypt——它加盐且刻意缓慢,因此能抵御暴力破解。{SHA} 的 SHA-1 方案是无盐的,只值得用于无法运行 bcrypt 的旧服务器。
为什么 bcrypt 哈希以 $2y$ 而不是 $2a$ 开头?
$2y$ 是 Apache 的 htpasswd 工具所写的前缀。bcrypt 库常输出 $2a$ 或 $2b$,但算法完全相同,因此本生成器把前缀规范化为 $2y$,以匹配 Apache 在磁盘上产生的内容。
我如何把生成的行加到我的 .htpasswd 文件里?
复制 user:hash 行,或下载 .htpasswd 文件,并把该行作为独立一行追加。然后把 AuthUserFile(Apache)或 auth_basic_user_file(nginx)指向那个文件并重载服务器。
相同的密码每次都会产生相同的 htpasswd 行吗?
使用 bcrypt 时,不会——每次运行都使用一个全新的随机盐,因此相同的密码产生不同的哈希,但仍能验证通过。使用 {SHA} 方案时哈希是无盐的,因此相同的密码总是产生相同的行。
我输入的密码会被发送到服务器去哈希吗?
不会。bcrypt 在你的浏览器中运行,SHA-1 使用内置的 Web Crypto API,因此你输入的用户名和密码在你的设备上被哈希,绝不会上传到 ArrayKit。

相关工具

全部 ArrayKit 工具