こんにちは私は、ユーザーが特定のディレクトリにアクセスできるかどうかを確認するため.htaccess
に、.htpasswd
ファイルを設定しようとしています。新規ユーザーが登録すると、パスワードはPHPmd5()
関数で暗号化され、他のログイン情報とともにデータベースに保存されます。暗号化されたパスワードのいくつかをファイルに動的に追加し.htpasswd
て、サブメンバーセクションに入力できるようにしたいと思います。このファイルは関数で暗号化されたパスワードで機能するため問題がありますが、md5で暗号化されたパスワードで.htpasswd
ファイルをcrypt()
機能させる方法がわかりません。
2 に答える
ドキュメントによると:
htpasswdは、Apache用に変更されたバージョンのMD5、またはシステムのcrypt()ルーチンのいずれかを使用してパスワードを暗号化します。htpasswdによって管理されるファイルには、両方のタイプのパスワードが含まれている可能性があります。一部のユーザーレコードにはMD5で暗号化されたパスワードが含まれている場合がありますが、同じファイル内の他のユーザーレコードにはcrypt()で暗号化されたパスワードが含まれている場合があります。
-m
引数を使用して、htpasswdファイルのパスワードにmd5sを使用するようにapacheを明示的に指定できると思います。htpasswd
htpasswdツールが必要ない、または使用できない場合は、 PHPからcrypt()ベースのパスワードを作成できます。
$clearTextPassword = 'some password';
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));
「htpasswdの-m引数を使用して、htpasswdファイルのパスワードにmd5sを使用するようにapacheを明示的に指定できると思います。」
Ubuntu 12.04以降では正反対のことがわかりました。デフォルトはmd5であり、Cryptを使用するには-dフラグを使用する必要があります。これは他の場所でも当てはまる可能性があります。htpasswdのバージョン番号が見つからないようです。