MEMO
- たつみんのMEMOφ(・ω・)
- 開発メモ
- その他
- ApacheのWindows版でベーシック認証
- 写真 (4)
- 犬 (3)
- 開発メモ (21)
- JavaScript (6)
- Ajax (2)
- FlashみたいなJavascript (1)
- Perl (1)
- PHP (1)
- WordPress (9)
- その他 (3)
- JavaScript (6)
5月 13 2011
ローカル環境でベーシック認証を実行しようとしても、
動かなかった。
【1】ベーシック認証をかけたいフォルダに.htaccessを置く
AuthUserFile "/xampp/htdocs/makePage/.htpasswd" AuthName "nishou" AuthType Basic require valid-user
【2】AuthUserFile で指定した場所に.htpasswdを置く
test1:FqkNI8TaVZUhs
↓参考サイト
【3】できません!!!
上記の方法でやったらできました。
で、書き出したパスワードファイルは
test1:$apr1$RN......$SciBQQcdMbonWjHrDYKBj0
う~ん。なんかいつもと雰囲気が違うなぁ・・・。
Google先生に聞いてみよう!!!!
(~以下転記~)
Apacheは、パスワードファイルのパスワードを照合する時、「$apr1$」というヘッダがついているものをmd5形式で格納されていると認識します。
それ以外は、Windows版Apacheの場合、暗号化なしでそのままパスワードが格納されていると認識します。
(Linux版Apacheの場合は、crypt()で暗号化したものが格納されていると認識します。)Apache付属のhtpasswdコマンド以外のツールでパスワードを生成しているのでしょうか?
「$apr1$」というヘッダがパスワードの頭についていないのであれば、そのパスワード作成ツールはmd5形式をサポートしてないのかもしれません。
なるほど・・・。
(~以下転記~)
crypt(passwd, salt)
利用者のパスワードをファイルに保存する際、そのまま保存しておくと危険なので、crypt() で DES による暗号化を行ってから保存するとよい。暗号化したパスワードから元のパスワードを解読することは困難だが、元のパスワードをチェックすることは容易にできる。解読を困難にするために、salt にはドット(.)、スラッシュ(/)を含む2文字の英数文字をランダムに指定する。この2文字は暗号化されたパスワードの最初の2文字となる。2文字目より後ろは無視される。
# パスワードを "hi.mi.tu" とする $passwd = "hi.mi.tu"; # 暗号化したパスワード($epasswd)を得る srand(); @salts = ( "A".."Z", "a".."z", "0".."9", ".", "/" ); $salt = $salts[int(rand(64))] . $salts[int(rand(64))]; $epasswd = crypt($passwd, $salt); print "epasswd=$epasswd\n"; # 暗号化したパスワードでパスワードをチェックする $passwd = "hi.mi.tu"; $epasswd = "ZpoK9sz7yGHRo"; if ($epasswd eq crypt($passwd, $epasswd)) { print "Match!!\n"; }MD5 がサポートされているシステムでは、salt に、”$1$” で始まる 8文字($1$ を含めて11文字)を指定することにより、MD5 を使用できる。DES よりも安全度が高い。
(~以下転記~)
《Windows》 MD5形式のみ
《Unix、Linux》 MD5またはDES暗号化
↓よくあるベーシック認証の暗号化《DES》
test1:FqkNI8TaVZUhs
↓今回作成したテイストの違う暗号化《MD5》
test1:$apr1$RN......$SciBQQcdMbonWjHrDYKBj0
で・・・。
《Windows》 MD5形式のみ
《Unix、Linux》 MD5またはDES形式
今まで、DESのことを、MD5と勘違いしてたー!!!!!!!
参考サイト様ありがとうございます。
勉強になります。