WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Basic認証の暗号化について

0:[投稿] みわ [2009/02/03 09:37 ] [環境:WindowsXP OS FreeBSD 6.2]

はじめまして。
Basic認証を使って会員登録のシステムを利用しているのですが
サーバーを移転したら以前のパスワードではログインや会員情報の変更ができなくなりました。サーバーに確認したら暗号化の方法が違うのではないかと言われて調べたところ、暗号化には2種類あるところまではわかりました。どうやら今のサーバーはMD5らしいのですが、既存のスクリプトをどうやって修正したら良いのかわからずに困っております。もしよろしければ、アドバイスをいただけますでしょうか。

おそらく、スクリプトのこの部分が問題になっていると思うのです。

============================================
# パスワード暗号化
sub PassWord {
       my ($passwd) = @_;
       srand();
       my $sec = int rand(100);
       $sec = "0$sec" if $sec < 10;
       return crypt($passwd, substr($sec, 0, 2));
}

# パスワード認証
sub CheckPassword {
       my ($password, $check) = @_;
       $passwd = crypt($check, substr($password, 0, 2));
       ($passwd eq $password) ? $password : undef;
}
============================================

これをMD5の暗号化で利用できるようにするためには
どういう処理にしたらよいのか。
よろしくお願いいたします。


1:[回答] tk [2009/02/03 21:23 ]

>これをMD5の暗号化で利用できるようにするためには
これが参考になるんでは。http://akebi.jp/support/cyclamen.cgi?log=perl&tree=r18

ただ問題はDES方式で暗号化したパスワードに対しMD5方式では認証できなさそうなところ。
なので、perl crypt des で検索。どうやらこれが使えそうです。
http://mikeneko.creator.club.ne.jp/~lab/perl/des/

改造については自力でガンバてください。


2:[関連] 古のもの [2009/02/03 22:20 ]

これって、perl の crypt 関数の仕様だけが問題で
Basic 認証とは全っっっく関係ないよね?
タイトルにだまされた。

ちなみに情報処理的には復号できないものは暗号とは呼ばないので
ハッシュである MD5 は正確には暗号ではないのですよ。


3:[完了] みわ [2009/02/04 15:10 ]

★tkさま
自分でもいろいろ検索かけたつもりだったのですが
全然わからずに困っていました。お返事ありがとうございます。
2番目のスクリプトだと、今までのパスワードが
そのまま使えて再登録してもらう必要がなさそうですね。
こちらをベースに、自分で頑張って改良してみようと思います。

★古のものさま
ごめんなさい、だましたつもりは・・・。
自分の中ではBasic認証をする時のパスワードを暗号化している
部分が問題だったので、わかりやすいタイトルかなぁと
思ったのですが・・・。
申し訳ございませんでした。

MD5は暗号じゃないんですか!?
どこを見てもMD5とDESと2種類あるような書き方をしていたので
類似のものなのだと思っていました。
勉強してみます。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]