CGI-BBS > 基本認証 > 自動パスワード制限 > サーバー移転したら、パスワードを認証しなーい!(T.T)


カレッヂ
カレッヂ


質問者 まりも  投稿日 10/20(土) 20:34:02
cgi初心者です(^-^;
AutoPwd v1.11を設置させて頂いてます。

今まで快適に動いていたのですが、サーバー移転したら、
以前のサーバーで取得済みのIDとパスワードを認識してくれません。
新たに移ったサーバーから、新しいIDとパスワードを自分宛てに
発行したら、そのIDとパスワードは認識してくれます。
IDとパスワードが保管されているファイルを「秀丸」で開いてみると
以前のサーバーで発行されたIDとパスワードは
  
 ユーザーID:hRAsoX6Z9A/yE 
 ※実際に発行されているパスワードは8文字です

ところが、新しいサーバーで発行されたIDとパスワードは

 1ユーザーID:$1$mg$t95OXVqoZGTZyJEJw2mmQ/
 2ユーザーID:$1$m4$kwuWhY//xj9BFlVAZA0la1
 3ユーザーID:$1$mY$YgcOE96dxbQVLetcdoW9g0
 ※こちらも同様、実際に発行されているパスワードは8文字です

決まって先頭に付く記号が共通してあります。
でも、新しく発行したパスワード変更など、問題なく作動します。
文字列が違うために、以前のパスワードを認識してくれないので
しょうか?
パスワードの暗号化、パスワードファイルへの追加の方法が、うまく
動作していないのではないでしょうか。。
その部分は、特に変更などはしていないのですが。。。。
----------------------------------------------------------
#生成された乱文字列$PWDを暗号化
$now = time;
($p1, $p2) = unpack("C2",$FORM{'IDNAME'});
$wk = $now / (60*60*24*7) + $p1 + $p2 - 8;
@saltset = ('a'..'z','A'..'Z','0'..'9','.','/');
$nsalt = $saltset[$wk % 64] . $saltset[$now % 64];
$CRYPTED_PWD = crypt($PWD, $nsalt);

#----------------------------------------------------------------------#
#パスワードファイルへ追加

if (!open(DB,">> $file")) { &error('システムエラー','パスワード管理ファイルにアクセスできません.','復旧するまでお待ちください.'); }
print DB "$FORM{'IDNAME'}\:$CRYPTED_PWD\n";
close(DB);

#----------------------------------------------------------------------#

そのままで使っていますが、どこか不都合があるのでしょうか。。
どなたか、アドバイスをお願いしますm(_ _)m
回答者 あけび  [削除]  投稿日 10/20(土) 21:42:18
> ユーザーID:hRAsoX6Z9A/yE 
こちらが DES
> 1ユーザーID:$1$mg$t95OXVqoZGTZyJEJw2mmQ/
こちらは MD5 という形式で暗号化されたもので、
両形式間での互換性はありません。
ですので、以前のサーバで記録されたパスワードが
現在のサーバで認証できないのは、CGIの動作としては正しいものです。

両形式間のデータを変換する方法はありませんので、
現在のサーバにて新たにパスワードを設定しなおすしか
対処方法は無いと思います。
質問者 まりも  [削除]  投稿日 10/20(土) 22:06:45
早速のアドバイス、ありがとうございました!
そうなんですか。。何度やっても出来ないわけですね(^-^;
ありがとうございました。そうとわかれば早速。。

また何かありましたら、よろしくお願いします。
お世話になりましたm(_ _)m

このページは終了したので返信(回答)は書きこめません

Web裏技