![]() |
カレッヂ |
質問者 まりも
投稿日 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裏技 |