htpasswd 生成
生成 Apache/Nginx htpasswd 认证行。
什么是htpasswd 生成?
htpasswd 生成工具用于生成 Apache 或 Nginx 的 HTTP Basic 认证密码文件(通常命名为 .htpasswd)里的一行内容,格式是 用户名:哈希后的密码。 Apache 自带的 htpasswd 命令行工具支持多种哈希格式:明文 crypt(已过时、不安全)、SHA1(-s 参数,同样不推荐)、APR1-MD5(-m 参数,Apache 专用变种,格式形如 $apr1$salt$hash)、以及 bcrypt(-B 参数,格式形如 $2y$05$...),这个工具主要生成后两种较安全的格式。
为什么使用htpasswd 生成?
在配置 Nginx 或 Apache 给某个目录/接口加一层简单的账号密码保护(Basic Auth)时,需要一个 .htpasswd 文件,里面每行是一个用户。手工用命令行 htpasswd 工具生成需要先安装 apache2-utils,这个网页工具省去了本地安装步骤,直接粘贴生成内容。 需要注意的是,Nginx 的 ngx_http_auth_basic_module 支持 crypt、SHA、APR1-MD5 格式,较新版本也支持 bcrypt 格式;如果是老版本 Nginx,选择 bcrypt 生成的密码可能无法被正确校验,需要确认自己的 Nginx 版本。
使用示例
生成 APR1-MD5 格式(Apache 通用)
输入用户名 admin、密码 secret123,选择 APR1-MD5,生成一行如 admin:$apr1$a1b2c3d4$XyZ123AbC456DeF789,把这一整行追加到 .htpasswd 文件即可,Apache 默认能直接识别这种格式。
生成 bcrypt 格式(更安全,需较新版本支持)
同样输入 admin/secret123,选择 bcrypt,生成 admin:$2y$05$examplesalthashvalue...,比 APR1-MD5 抗暴力破解能力更强,但要求 Web 服务器版本支持该格式的校验。
追加多个用户
分别为 alice、bob 生成各自的一行,把多行按用户名各占一行拼接进同一个 .htpasswd 文件,Apache/Nginx 会按行匹配用户名进行认证,一个文件可以放多个用户。
使用提示
不同 Web 服务器对哈希格式的支持范围不同,生成前先确认自己的 Nginx/Apache 版本;.htpasswd 文件本身要放在 Web 根目录之外或配置禁止直接访问,避免被外部直接下载。
常见问题
bcrypt 和 {SHA} 该选哪种?
生成的这一行怎么用?
密码会上传服务器吗?
生成后怎么用?
明文密码会被发送到服务器吗?
SHA1 格式为什么不推荐?
为什么我的 Nginx 提示密码校验失败?
相关工具
← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。