1.
htpasswd是开源 http服务器apache httpd的一个命令工具,用于生成 http基本认证的密码文件。说白了,可以使用这个htpasswd工具将明文的账号密码经过算法进行加密,且将密文写入到文件中。然后某些服务器接收到客户端传递过来的用户名和密码后,用相同的加密算法处理后,和htpasswd文件中的账号密码密文进行比较,如果一直就认为账号校验通过。
2.加密方式
现在htpasswd支持的加密方式有:
(1)MD5
使用MD5加密密码。在Windows, Netware 和TPF上,这是默认的加密方式。
(2)Crypt
使用crypt()加密密码。在除了Windows,
Netware和TPF的平台上,这是默认的。虽然它在所有平台上可以为htpasswd所支持,但是在Windows,Netware和TPF上不能为httpd服务器所支持。
(3)SHA
使用SHA加密密码。它是为了方便转入或移植到使用LDAP Directory Interchange Format (ldif)的Netscape而设计的。
(4)plain
不加密,使用纯文本的密码。虽然在所有平台上 htpasswd都可以建立这样的密码,但是httpd后台只在Windows, Netware和TPF上支持纯文本的密码。
以账号:wahaha密码:whhpasswd来说,
plain方式:wahaha:whhpasswd
md5方式:wahaha:$apr1$uoanTu8f$e0jtEB5f11qE.qM04zBLH1
Crypt方式:wahaha:tuR0CqcTP6f8o
SHA-1方式:wahaha:{SHA}kO9/ItQfKiY2ISR7yVR+0cuJCgA=
3.htpasswd命令使用方式
(1)htpasswd命令常用的选项
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'可能不能使用。
(2)命令使用举例
htpasswd -c .passwd wahaha #使用crypt加密,账号是wahaha,密码交互式输入,生成的密文存入.passwd文件中
htpasswd .passwd wahaha #修改账号wahaha的密码
htpasswd -bc .passwd wahaha pwwahaha #新建一个wahaha账号,密码是pwwahaha,生成的密文存入.passwd文件中
学习资料参考于:
http://blog.youkuaiyun.com/fdipzone/article/details/41020045