htpasswd 密码生成工具介绍
在《htaccess入门教程》中提到了一个apache工具htpasswd,配合.htaccess使用,实现目录密码保护的功能。这对很多有私密性需求的网站来说,是相当有用的。
htpasswd
使用专为Apache作了修改的MD5算法或系统函数crypt()
加密密码。htpasswd
所管理的文件可以包含两种类型的密码;有些用户的密码使用MD5加密的,而同一个文件中的其他用户密码则使用 crypt()
加密。
htpasswd的文件格式:
username:password,每行存储一组。
这个工具放在在apache的bin目录下。可以在命令行中调用它。
apache htpasswd命令用法
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-b
使用批处理方式。也就是直接从命令行获取密码而不进行提醒。使用这个选项需要特别注意,因为命令行中的密码是清晰可见的。
-c
创建passwdfile文件。如果passwdfile已经存在,那么将被清空并改写。该选项不能和 -n 同时使用。
-n
在标准输出上显示结果而不是更新文件。用于生成可以为Apache非文本输出存储格式所接受的密码记录。这个选项改变了命令行语法,因为passwdfile参数(通常是第一个)被忽略了。该选项不能和 -c 同时使用。
-m
使用MD5加密密码。在Windows, Netware, TPF上这是默认方法。
-d
使用crypt()对密码进行加密。在Windows, Netware, TPF以外的平台上这是默认方法。虽然有可能在所有的平台上被htpasswd支持,但是在Windows, Netware, TPF上,该方法不能被httpd所支持。
-s
使用 SHA 对密码进行加密。这种方法易于通过LDAP目录交换格式和Netscape server进行交换。
-p
使用明文密码(不加密)。虽然htpasswd在所有平台上都支持这种方法,但是httpd只能在Windows, Netware, TPF上支持这种方法。
-D
如果username存在于passwdfile中,则删除该用户。
passwdfile
包含用户名和密码的文本文件的名称。如果使用了 -c 选项,若文件已存在则更新它,若不存在则创建它。
username
在passwdfile中添加或更新记录。若username不存在则添加一条记录,若存在则更新其密码。
password
将被加密并存储到文件中的明文密码。必须和 -b 同时使用。
apache htpasswd命令用法实例
1、如何利用htpasswd命令添加用户?
htpasswd -bc .passwd www.leapsoul.cn php
在bin目录下生成一个.passwd文件,用户名www.leapsoul.cn,密码:php,默认采用MD5加密方式
2、如何在原有密码文件中增加下一个用户?
htpasswd -b .passwd leapsoul phpdev
去掉c选项,即可在第一个用户之后添加第二个用户,依此类推
3、如何不更新密码文件,只显示加密后的用户名和密码?
htpasswd -nb leapsoul phpdev
不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码
4、如何利用htpasswd命令删除用户名和密码?
htpasswd -D .passwd leapsoul
5、如何利用htpasswd命令修改密码?
htpasswd -D .passwd leapsoul
htpasswd -b .passwd leapsoul phpdev
即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。