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

DEVELOPMENTOR*LEARNING RESOURCE LAB.

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

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

2006年10月07日 | perl

UNIXで動作する.htpasswdを編集するperlスクリプト(CGIプログラム)をWindowsで動作するように改造するときは Crypt-PasswdMD5-1.3 というperlモジュールを使うと簡単です。

はじめにCrypt-PasswdMD5-1.3をインストールします。 perlモジュールのインストール方法がわからないときは、前述のアドレスから Crypt-PasswdMD5-1.3.tar.gzというファイルをダウンロードします。

Crypt-PasswdMD5-1.3.tar.gzを解凍すると次のようなディレクトリとファイルが作成されます。この中からPasswdMD5.pmというファイルを perlスクリプトのカレントディレクトリかライブラリを格納するディレクトリにコピーします。このときCryptというディレクトリを作成し、ファイル名はCrypt/PasswdMD5.pmとします。

Crypt-PasswdMD5-1.3/
  README
  PasswdMD5.pm
  META.yml
  MANIFEST
  Makefile.PL
Crypt-PasswdMD5-1.3/t/
  basic.t

.htpasswdを編集するperlスクリプト(CGIプログラム)の中に、次のようにcrypt関数を使用してパスワードを認証している部分があると思います。このcrypt関数をapache_md5_crypt関数に置き換えます。引数は同じままで大丈夫です。

  #my $ok = crypt($password, $crypted);
  use Crypt::PasswdMD5;
  my $ok = apache_md5_crypt($password, $crypted);

同じようにcrypt関数を使用してパスワードを暗号化している部分があると思います。このcrypt関数をapache_md5_crypt関数に置き換えます。引数は同じままで大丈夫です。

  #my $crypted = crypt($password, $salt);
  use Crypt::PasswdMD5;
  my $crypted = apache_md5_crypt($password, $salt);

perlスクリプト(CGIプログラム)の改造はこの2点です。これでUNIX版のapacheで動作したものが、Windows版のapacheでも動作するようになります。

ただし、依然としてUNIXとWindowsで暗号化の方式が異なりますので、 UNIXで編集した.htpasswdファイルをWindowsで使うことや、 Windowsで編集した.htpasswdファイルをUNIXで使うことはできません。そのためUNIXとWindowsとの間で.htpasswdファイルを使い回すときは別の方法が必要となるでしょう。


最新の画像もっと見る