[PHP-users 12497] Re: パスワード変更プログラム

北嶋宏丞 php-users@php.gr.jp
Fri, 10 Jan 2003 11:32:41 +0900


北嶋です。

重ね重ねありがとうございます。
早速利用させていただきます。

以上
----- Original Message -----
From: "長田真治" <nagata@olea.jp>
To: <php-users@php.gr.jp>
Sent: Friday, January 10, 2003 11:11 AM
Subject: [PHP-users 12495] Re: パスワード変更プログラム


> 長田です。
>
>
> > シャドウ化されたパスワードは、この関数で生成できました。
> > RedHat7.2上で動作することを確認しています。
> >
> > Function make_shadow_password($password)
> > {
> >  $salt = substr(md5(microtime()), 0, 9);
> >  return crypt($password, "$1$" . $salt);
> > }
>
>
> 自己レスです。
> 上記の関数は、OS のユーザ用のパスワード暗号化関数でした。
>
> htpasswd の場合は、以下のような関数を使えばよいと思います。
>
> 直接 exec() 関数を使用するので、ブラウザから入力されて、
> シェルに渡される変数については、値のチェックを十分に行う
> 必要があります。
>
>
> <?php
>   define("HTPASSWDFILE", "/home/webmaster/auth/htshadow");
>   define("HTPASSWD", "/usr/bin/htpasswd");
>
>   // htpasswdファイルを更新する。
>   function htpasswd($username, $password, $htpasswdfile=HTPASSWDFILE) {
>     exec(HTPASSWD . " -b " . $htpasswdfile . " " . $username . " " .
> $password, $array, $return_var);
>     return $return_var;
>   }
>
>   // パスワードをhtpasswdファイルで使える形に暗号化する。
>   function get_encrypt_password($password) {
>     exec(HTPASSWD . " -nb " . $password, $array, $return_var);
>     return $return_var;
>   }
>
>   // htpasswdファイルのユーザとパスワードの情報を連想配列にして返す。
>   function parse_htpasswd_file($htpasswdfile=HTPASSWDFILE){
>     $array=file($htpasswdfile);
>     $hash=array();
>     while(list(, $val)=each($array)) {
>       list($username, $password)=explode(":", $val);
>       $temp_array=array($username => $password);
>       $hash=array_merge($hash, $temp_array);
>     }
>     return $hash;
>   }
>
>   // htpasswdファイル上にユーザのエントリがあるかどうかを調べる。
>   function user_exists($username) {
>     if(array_key_exists($username, parse_htpasswd_file())) {
>       return true;
>     } else {
>       return false;
>     }
>   }
> ?>
>
>
> --
> 長田真治
> 株式会社グッデイ
> mailto:nagata@nospam.good-day.co.jp
>
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>