使用apache htpasswd生成加密的密码文件,并使用.htaccess控制目录访问

时间:2022-06-24 17:22:06

htpasswd 是apache的小工具,在apache安装目录bin下可找到。

Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password

htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c 创建一个新的加密密码文件
-n 不更新文件,显示结果
-m 使用MD5加密密码
-d 使用CRYPT加密密码(默认)
-p 不加密密码
-s 使用SHA加密密码
-b 直接在命令行输入密码,而不是提示后再输入密码
-D 删除用户
在Windows, NetWare与 TPF系统,'-m' 是默认的密码加密方式。
在所有其他系统,'-p'可能不能使用。

1.生成加密密码文件

htpasswd -c .pass fdipzone
New password:
Re-type new password:
Adding password for user fdipzone

这样就生成了一个使用CRYPT加密密码的文件

以下命令可以生成用md5加密密码的文件,b参数的作用是在命令行直接把密码输入,这样就不需要等提示输入密码再输入了。

htpasswd -cmb .pass fdipzone 123456
Adding password for user fdipzone

2.修改密码

htpasswd .pass fdipzone
New password:
Re-type new password:
Updating password for user fdipzone

3.增加用户

htpasswd .pass guest
New password:
Re-type new password:
Adding password for user guest

4.删除用户

htpasswd -D .pass guest
Deleting password for user guest
如果使用p参数,不加密密码,系统会提示Warning,因此为了安全最好不要使用p参数。

htpasswd -cp .pass fdipzone
Warning: storing passwords as plain text might just not work on this platform.

.htaccess 调用加密密码文件控制访问权限


首先 Allowoverride 需要设置为 AuthConfig 或 All

然后在需要控制访问的目录下增加.htaccess


.htaccess内容如下

AuthType "Basic"
AuthName "Password Required" #提示文字
AuthUserFile "/home/fdipzone/sites/pass/.pass" #加密密码的文件
Require valid-user

当访问该目录下的文件时,则会弹出要求输入用户名和密码的输入框。输入正确的用户名和密码后就能正常访问。

使用apache htpasswd生成加密的密码文件,并使用.htaccess控制目录访问


tips:为了安全,加密的密码文件请不要放在线上用户可以访问的路径。