开发者工具 / 24
Apache/Nginx .htpasswd生成器
在客户端内存中生成Apache和Nginx的.htpasswd认证行及密码哈希。
Apache/Nginx .htpasswd生成器: TOEA会生成Apache和nginx用于HTTP基本认证的认证行。默认格式是Apache的$apr1$:密码会加上8个随机字符作为盐值,并经过一千轮迭代,这正是htpasswd -m生成的格式,也是两种服务器都能读取的格式。 完全在浏览器中本地运行,文件不会上传到服务器。
- 类别
- 开发者工具
- 使用次数
- 在浏览器中
- 费用
- 免费·无需注册
- 可用性
- 可直接使用
将这一行接入服务器
将这一行保存到Web根目录之外的文件中,每行一个user:hash。对于nginx,请将auth_basic "Restricted";和auth_basic_user_file /etc/nginx/.htpasswd;添加到location或server区块。对于Apache,请使用AuthType Basic、AuthName、带文件完整路径的AuthUserFile以及Require valid-user。之后重新加载服务器;配置语法错误会导致每个请求都失败,而不仅仅是登录请求。
美元符号和普通HTTP
哈希中包含许多$字符,而Docker Compose文件、.env文件和某些代理标签会将$识别为变量的开头。在Compose中,请将每个$写成$$;否则哈希会被静默截短,任何密码都无法匹配。
基本身份验证会在每个请求中发送用户名和密码,虽然经过编码但未加密。请将其放在HTTPS后面,并将其作为预发布网站和管理路径的访问门禁,而不是面向客户的登录系统。
使用方法
- 输入用户名和密码。
- 除非有特殊原因,否则将算法保留为Apache MD5。
- 将生成的行复制到.htpasswd文件中。
隐私与限制
密码会在浏览器中进行哈希处理,绝不会发送到任何地方。不会记录任何内容,盐值来自浏览器自身的加密随机源,因此两个人为同一个密码生成认证行时,不会得到相同的哈希。
相关工具
常见问题
应该选择哪种算法?
选择Apache MD5($apr1$),也就是此工具的默认选项。它使用了盐值并经过多轮迭代,Apache和nginx都能接受。{SHA}选项是未加盐的SHA-1摘要,仅为需要该格式的旧版配置保留——Apache自带的htpasswd工具将其标记为不安全,因为相同的密码会生成相同的哈希,查找表可以破解这些哈希。
它和bcrypt一样安全吗?
不一样。bcrypt更强,Apache也支持它,但此处无法生成bcrypt——这需要一个Blowfish实现,而将其打包并确保其可信度需要大量代码。如果需要bcrypt,请在本地运行htpasswd -B -n username,然后粘贴结果。
依赖它之前,可以先检查认证行吗?
可以,而且值得这样做。将它保存到文件中,然后运行htpasswd -vb yourfile username password——Apache会告诉你它是否能够通过认证。这些认证行已通过htpasswd和openssl passwd -apr1的验证。
免费工具·使用在浏览器中次·无需账户