2

こんにちは私は、ユーザーが特定のディレクトリにアクセスできるかどうかを確認するため.htaccessに、.htpasswdファイルを設定しようとしています。新規ユーザーが登録すると、パスワードはPHPmd5()関数で暗号化され、他のログイン情報とともにデータベースに保存されます。暗号化されたパスワードのいくつかをファイルに動的に追加し.htpasswdて、サブメンバーセクションに入力できるようにしたいと思います。このファイルは関数で暗号化されたパスワードで機能するため問題がありますが、md5で暗号化されたパスワードで.htpasswdファイルをcrypt()機能させる方法がわかりません。

4

2 に答える 2

6

ドキュメントによると:

htpasswdは、Apache用に変更されたバージョンのMD5、またはシステムのcrypt()ルーチンのいずれかを使用してパスワードを暗号化します。htpasswdによって管理されるファイルには、両方のタイプのパスワードが含まれている可能性があります。一部のユーザーレコードにはMD5で暗号化されたパスワードが含まれている場合がありますが、同じファイル内の他のユーザーレコードにはcrypt()で暗号化されたパスワードが含まれている場合があります。

-m引数を使用して、htpasswdファイルのパスワードにmd5sを使用するようにapacheを明示的に指定できると思います。htpasswd

htpasswdツールが必要ない、または使用できない場合は、 PHPからcrypt()ベースのパスワードを作成できます。

$clearTextPassword = 'some password';
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));
于 2012-08-05T08:57:19.773 に答える
3

「htpasswdの-m引数を使用して、htpasswdファイルのパスワードにmd5sを使用するようにapacheを明示的に指定できると思います。」

Ubuntu 12.04以降では正反対のことがわかりました。デフォルトはmd5であり、Cryptを使用するには-dフラグを使用する必要があります。これは他の場所でも当てはまる可能性があります。htpasswdのバージョン番号が見つからないようです。

于 2012-11-03T22:48:21.697 に答える