CGI-BBS > 基本認証 > その他 > crypt関数で暗号化されたパスワードを復元したい。


カレッヂ
カレッヂ


質問者 ルヤ  投稿日 2004/2/19(木) 18:08:59
CGIを触って3ヶ月経ちました、ここは大変お世話になっております。
そして認証用CGIを作ってみました。
------- index.htm         #ログイン画面
   |
   ├ login.cgi(755)    #ログイン認証用CGI
   |
   ├ register.cgi(755) #ユーザー登録用CGI
   |
   ├ askpass.cgi(755)  #ユーザーがパスワード忘れた時の問合せ用CGI
   |
   ├ password.dat(666) #パスワード、メールなどユーザー情報が保存しているファイル

ユーザーは「ID」、「PassWord」、「Mail」をregister.cgiで登録して、login.cgiで認証ログイン
します、「PassWord」はcrypt関数で暗号化して保存されます。
ここまではうまく作れましたが、パスワードの問合せCGIを作ってみようと思ったところで
暗号化されたパスワードをどうやって復元するのが分からず、困ってしまいました。
一つ隠れディレクトリーを作って、暗号化されていないパスワードをそこに登録するようにして
パスワードの問合せがあった場合にはそのファイルからユーザーのパスワードを教えるようには
出来ますが、CGIの構造上も、セキュリティーの面でもよくないと思って、やめました。

何方がご教授ください、よろしくお願いいたします。

プロバイダ参照:http://www.hostmycgi.com
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:MKEditor
FTPソフト:FFFTP
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:middle

回答者 まさ  [削除]  投稿日 2004/2/19(木) 19:54:21
crypt関数で暗号化されたパスワードを復元することはできません。
あるテキストと暗号化された文字列が同じかどうかは判断できます。

暗号の定義からいくとcrypt関数は正確には暗号化していると言えません。
不可逆ですからね。暗号は必ず可逆性ですから。

まあ、そう言う仕様なので仕方がないです。


質問者 ルヤ  [削除]  投稿日 2004/2/19(木) 23:06:58
早速のお返事ありがとうございます。
では、このようなパスワードの問い合わせCGIを作りたければ、やばりもう一つ
暗号化していないパスワードファイルを作らなければならないでしょうか?
もっといい方法ないのでしょうか?
よろしくお願いいたします。
回答者 まさ  [削除]  投稿日 2004/2/20(金) 09:40:04
暗号化していないパスワードファイルを持つと言うのはセキュリティーの面から
考えてあまり好ましくありませんよね。

いっそのことユーザがパスワードを忘れたら、そのパスワードを教えるのではなく、
もう一度作成してもらうようにするのがいいと思いますよ。
あくまでもファイル内のパスワードは暗号化しているものでなくてはならないと思
います。



返信(回答)する

 


Web裏技