Apache & Nginx htpasswd Generator

Apache & Nginx htpasswd 生成ツール(Bcrypt、APR1-MD5、SHA-1)開発者ガイド

Bcrypt、Apache MD5(APR1)、SHA-1ハッシュに対応した安全なHTTP基本認証(.htpasswd)エントリを生成します。

プリセット:
認証資格情報と設定
Entropy: 105 bitsMilitary-Grade
Bcrypt コスト係数 (ラウンド数):10 (1,024 iterations)
4 (Fastest)10 (Default)14 (Maximum)
Apache Revision Prefix:
admin:$2b$10$NJftb7lMhg.Vk6ZjHMoYnOX2rWDHu2M0vkvtI0ICD5pIMO97NP/fG
設定アカウント数
1 User Account (66 Bytes)
使用アルゴリズム
Bcrypt ($2y$, 10 Rounds)
パスワード強度
GPU Resistant (High Work Factor)

暗号化ハッシュ関数(Bcrypt、APR1-MD5、SHA-1)

最新のEksblowfish Bcrypt($2y$/$2a$)、1000回反復ソルトを備えたApache標準APR1-MD5、レガシーBase64 SHA-1ハッシュをクライアントメモリ内で完全サポート。

Apache httpd と Nginx のデュアルサーバー対応

構文検証済みの.htpasswdエントリに加えて、そのまま貼り付け可能なNginx auth_basicブロック、Apache AuthUserFileディレクティブ、Docker/Kubernetes Secretを出力。

完全ゼロ知識・ブラウザ内ローカル計算

ソルトの生成、MD5反復処理、ハッシュ導出の全工程がブラウザ内のWeb CryptographyおよびJavaScript上で実行され、外部サーバーへの通信は一切発生しません。

技術リファレンス&アーキテクチャガイド

Apache & Nginx htpasswd 生成ツール(Bcrypt、APR1-MD5、SHA-1)開発者ガイド — リファレンスガイド

Bcrypt、Apache MD5(APR1)、SHA-1ハッシュに対応した安全なHTTP基本認証(.htpasswd)エントリを生成します。

主要パラメータ&設定項目

usernamestring

HTTP基本認証用のユーザー名。コロン(:)および制御文字は使用できません。

初期値: admin
passwordstring

htpasswdエントリに暗号化ハッシュとして保存する平文パスワード。

初期値: ••••••••
algorithmselect

暗号化ハッシュ関数:Bcrypt ($2y$)、Apache APR1-MD5 ($apr1$)、SHA-1 ({SHA})、またはUnix Crypt。

初期値: bcrypt
costnumber

Bcryptのコスト係数(計算回数 = 2^cost、範囲 4〜31)。検証時のCPU負荷を調整します。

初期値: 10

プロの活用テクニック&推奨設定

本番環境ではBcrypt($2y$)を最優先で使用する

最新のApache HTTP Server(2.4以降)およびNginx(1.0.3以降)はBcryptをネイティブサポートしています。GPUによる高速総当たり攻撃に対抗できるため、本番環境ではBcryptを推奨します。

.htpasswdファイルはDocumentRoot外に配置する

公開Webディレクトリ内に.htpasswdを配置してはいけません。/etc/nginx/.htpasswdなどに配置し、パーミッションをchmod 640または600に制限してWebサーバー実行ユーザーのみ読み取り可能にしてください。

旧式のSHA-1や単一MD5の使用を避ける

ソルトなしのSHA-1({SHA})や標準MD5は現代のハードウェアでは脆弱です。GPUクラスタを用いれば毎秒数十億件の検証が可能なため、辞書攻撃に対して無力です。

改行コードは必ずUnix形式(LF)に統一する

.htpasswdファイル内の改行コードがWindows形式(CRLF)になっていると、末尾のハッシュ値が破損し認証失敗の原因となります。必ずLF(\n)を使用してください。

よくあるトラブルと解決策

Nginxでauth_basicを有効化するとHTTP 500 Internal Server Errorが発生する

/var/log/nginx/error.logを確認してください。auth_basic_user_fileのパス指定ミス、またはNginxプロセス(www-dataなど)の読み取り権限不足が原因です。'chmod 644 /etc/nginx/.htpasswd'を実行して権限を修正してください。

正しいパスワードを入力してもApacheで認証ループや不一致エラーが発生する

ApacheのAPRライブラリがBcryptに対応しているか確認してください(apr-util 1.5以上が必要)。また、ファイル内の改行コード(\r)や末尾の不要な空白文字を確認してください。

ユーザー名に特殊文字を含めると認証が正常に動作しない

.htpasswdのフォーマットは最初のコロン(:)でユーザー名とハッシュを区切るため、ユーザー名にコロンを含めることはできません。パスワードにはコロンを含めても問題ありません。

よくある質問 (FAQ)

APR1-MD5と標準のMD5の違いは何ですか?▼

APR1($apr1$)はApache独自の反復ハッシュ方式で、ランダムなソルトと1,000回のMD5計算を組み合わせてレインボーテーブル攻撃を防ぎます。標準MD5は単一処理かつソルトなしのため、パスワード保存には極めて危険です。

NginxはApacheのhtpasswdコマンドで生成したファイルをそのまま読めますか?▼

はい。Nginxのngx_http_auth_basic_moduleは、Apache形式の.htpasswd(Bcrypt $2a$/$2y$、APR1-MD5、Unix cryptなど)と完全な互換性があります。

Basic認証に推奨されるBcryptのコスト係数はいくつですか?▼

一般的には10〜12が最適です。コスト10の場合、最新サーバーでの検証時間は約50〜100msとなり、正規ユーザーの体感速度を損なわずに総当たり攻撃を効果的に防御できます。

Nginxで特定ディレクトリにBasic認証を設定するにはどうすればよいですか?▼

対象のlocationまたはserverブロック内に 'auth_basic "Restricted Area";' と 'auth_basic_user_file /etc/nginx/.htpasswd;' を記述し、'nginx -t' で構文確認後にリロードします。

関連するおすすめ開発ツール

すべてのツール →
JWTトークンデコーダー&セキュリティインスペクターsecurity

JSON Web Token(JWT)をデコードし、ヘッダーとペイロードのクレームを解析。有効期限の自動計算や署名検証をブラウザ上で安全にローカル実行します。

ツールを開く→
高強度パスワード・パスフレーズ自動生成ツールsecurity

暗号論的擬似乱数生成器(Web Crypto CSPRNG)を用いた高エントロピーパスワード、覚えられるDicewareパスフレーズ、PIN、APIトークンをブラウザ内で瞬時に安全生成。NIST SP 800-63B準拠。

ツールを開く→
暗号学的ハッシュ値・チェックサム一括計算ツールsecurity

SHA-256、SHA-512、MD5、SHA-1、SHA-3、Keccak、CRC32をブラウザ内で瞬時に一括算出。Web Crypto APIによる100%クライアントサイド完結。

ツールを開く→
JSON Web Token (JWT) デバッガー&署名検証ツールsecurity

HMAC (HS256/384/512) および RSA (RS256/384/512) 署名のデコード・構造検査・検証をブラウザ内メモリで100%完結。外部サーバー送信一切なし。

ツールを開く→
パスワード強度診断&エントロピー解析ツールsecurity

情報エントロピー計算とzxcvbnアルゴリズムにより、総当たり(ブルートフォース)攻撃耐性や解読所要時間を完全ローカルで精密診断します。

ツールを開く→
クライアントサイド AES-GCM / CBC 暗号化・復号ツールsecurity

Web Crypto APIによるブラウザ内ハードウェア高速化AES-256認証暗号。サーバー送信一切なし、完全ローカル実行。

ツールを開く→