使用apache htpasswd生成加密的密码文件,并使用.htaccess控制目录访问
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
当访问该目录下的文件时,则会弹出要求输入用户名和密码的输入框。输入正确的用户名和密码后就能正常访问。
tips:为了安全,加密的密码文件请不要放在线上用户可以访问的路径。