htpasswdファイルを、OS固有の機能(exec()
,)に依存せずにビルドするプログラム的な方法はありますか?プログラムによるビルドhtpasswd
答えて
.httpasswdファイルは、指定されたハッシュ関数に応じて特定の形式のテキストファイルです。あなたはMD5を使用している場合、それらは次のようになります。
base64でエンコードされたとして、ログイン、コロン、$ apr1 $、塩および1000倍のMD5をだfoo:$apr1$y1cXxW5l$3vapv2yyCXaYz8zGoXj241
。ログイン、BASE64でエンコードコロン、文字列{SHA}とSHA1ハッシュです
foo:{SHA}BW6v589SIg3i3zaEW47RcMZ+I+M=
:あなたはSHA1を選択した場合、彼らはこのように見えます。
あなたの言語はMD5またはSHA1とbase64のいずれかの実装を持っている場合は、ちょうどこのようなファイルを作成することができます
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
TracはhtpasswdをPythonに置き換えて出荷されています。あなたの言語に移植することができます:htpasswd.py
まず、このフォームを作成します。
<FORM METHOD="POST" ACTION="<? echo $_SERVER['PHP_SELF']; ?>" onSubmit='return ValidateForm()'>
Username<br /><INPUT TYPE="TEXT" NAME="user[]"><br /><br />
Password<br /><INPUT TYPE="PASSWORD" NAME="password1[]"><br />
<INPUT TYPE="PASSWORD" NAME="password2[]"><br /><br />
<INPUT type=submit name="submit" VALUE="Create .htpasswd entry" onclick="document.all.submit.style.visibility='hidden'">
</FORM>
を次に、このPHPコードは、あなたのためのパスワードを作成します。
if (isset($_POST['user']) && isset($_POST['password1'])) {
if($_POST['password1'] == $_POST['password2']) {
$user = $_POST['user'];
$password1 = $_POST['password1'];
$htpasswd_text = "";
for ($i = 0; $i < count ($user); $i++) {
$htpasswd_text .= "$user[$i]:".crypt($password1[$i],CRYPT_STD_DES)."";
}
echo "<br />Copy this line to your .htpasswd file:";
echo "<pre style=\"border-bottom-width:1px;border-bottom-style:solid;\">";
echo nl2br($htpasswd_text);
echo "</pre><br />";
} else {
echo "<pre style=\"border-bottom-width:1px;border-bottom-style:solid;\">Passwords do not match !</pre><br />";
}
}
あなたに追加する実際のテキストファイルをのhtpasswdは$htpasswd_text
であります変数。
暗号形式ハッシングは廃止されており、今後は使用しないでください。 htpasswdの現在のデフォルトはmd5です。 – bitmusher
から:
<?php
$login = 'foo';
$pass = 'pass';
$hash = base64_encode(sha1($pass, true));
$contents = $login . ':{SHA}' . $hash;
file_put_contents('.htpasswd', $contents);
?>
ここ形式の詳細だがPHPのウェブサイトでは、以下の方法でcrypt()を使用することができます:
<?php
// Set the password & username
$username = 'user';
$password = 'mypassword';
// Get the hash, letting the salt be automatically generated
$hash = crypt($password);
// write to a file
file_set_contents('.htpasswd', $username ':' . $contents);
?>
これはもちろん、既存のファイル全体を上書きするので、何らかの連結をしたいと思うでしょう。
これはうまくいくとは100%確信していませんが、私はかなり確信しています。
htpasswdファイルの暗号化形式ハッシュは廃止されており、使用しないでください。現在のデフォルトはmd5です。 – bitmusher
- 1. PHPおよびhtpasswdの
- 2. Htpasswdもルートディレクトリ
- 3. .htaccessファイルの.htpasswdパス
- 4. Goサブディレクトリにプログラムをビルドするには?
- 5. NAntビルドによるMSIビルド
- 6. スタンドアロンOCamlプログラムのビルド
- 7. 特定のサブドメインの.htpasswd
- 8. ホームページでhtpasswdなしのcodigniter
- 9. htpasswd不正確なチェック
- 10. Android App開発、Webサーバ、htpasswd
- 11. htpasswd、Magento、Image Uploader HTTPエラー
- 12. 問題:管理者ログインHTPASSWDアイデンティティプロバイダに切り替えることたくてOpenshift起源でHTPASSWD IDプロバイダに
- 13. htpasswdでパスワードを解読する
- 14. htpasswdでディレクトリのみを保護する
- 15. .htaccess異なる.htpasswdファイル用の文
- 16. どのようにプログラムで作成する/ CTabCtrlをビルドするには?
- 17. .htaccessファイルの.htpasswdへのパスをどのようにパラメータ化するか?
- 18. Visual StudioでC++プログラムをビルドするコード
- 19. CでExcel worksheet.rangeをプログラムでビルドする
- 20. プログラムによるプログラムのアンインストール
- 21. Apache htpasswd安全なパスワードの変更
- 22. CakePHP - Apache un-htpasswd特定のパス
- 23. htpasswdからフォルダを除外します
- 24. UIViewのローカライズプログラムによるビルド
- 25. ビルドの日付をアセンブリにプログラム的にハードコードする方法
- 26. devel grailsアプリケーションをパスワードのような単一のhtpasswdで保護する
- 27. CC.netビルドのステータスをプログラムでプログラマチックに取得する方法は?
- 28. Jenkinsのビルドフローで子ビルドにプログラムでアクセスする
- 29. プログラムによるC#
- 30. プログラムによるテーブルナビゲーション
MD5形式のパスワードも生成するコードが見つかりました。http://techtalk.virendrachandak.com/using-php-create-passwords-for-htpasswd-file/ –