在《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添加用戶命令創建用戶即可實現修改密碼的功能。