goo blog サービス終了のお知らせ 

DEVELOPMENTOR*LEARNING RESOURCE LAB.

ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。(休止)

win32版apacheの.htpasswdを編集する(その1)

2006年10月07日 | perl

apacheの基本認証は特定のユーザのみにWEBサイトへのアクセスを許可するために利用する機能です。 apacheの基本認証は.htpasswdというファイルにユーザとパスワードを保存します。

この.htaccessファイルを編集できる様々なperlスクリプト(CGIプログラム)が公開されていますが、 UNIX版のapacheで動作したものが、Windows版のapacheでは動作しないことがあります。これはUNIXとWindowsで暗号化の方式が異なることが主な原因です。

次のようにUNIX版のhtpasswdコマンドと使って.htpasswdファイルを作成します。今回はfreebsd 4.xとapache 1.3.xを使用しました。

% htpasswd -c .htpasswd user
New password:
Re-type new password:
Adding password for user user
% cat .htpasswd
user:IUbf3xXD3kJVI

次のようにWindows版のhtpasswdコマンドと使って.htpasswdファイルを作成します。今回はWindows XPとapache 1.3.xを使用しました。

C:PROGRA~1APACHE~1APACHEBIN>htpasswd -n user
Automatically using MD5 format on Windows.
New password: ****
Re-type new password: ****
user:$apr1$Yd5.....$rRok8y/LV0XuIFVYoEBGu0

UNIXとWindowsでは作成した.htpasswdファイルに違いがあります。 UNIXよりもWindowsの方が暗号化したパスワードの文字列が長くなります。 UNIXはDES形式、WindowsはMD5形式という異なる暗号化を利用するためです。

それでは.htaccessファイルを編集するperlスクリプト(CGIプログラム)を Windowsで動作させるにはどうすればよいでしょうか。次回は Crypt-PasswdMD5-1.3 というperlモジュールを使って簡単にperlスクリプトを改造する方法をご紹介します。


最新の画像もっと見る