htpasswd ジェネレーター

ユーザー名とパスワードから Apache や nginx の .htpasswd 行と HTTP Basic 認証ヘッダーを、bcrypt・APR1・SHA-1 のハッシュで、すべてブラウザー内で生成します。

ツールを読み込み中…

htpasswd ジェネレーターユーザー名とパスワードを入力すると、Apache や nginx の Basic 認証にそのまま貼り付けられる .htpasswd 行と、クライアントが送信する対応する HTTP Basic 認証ヘッダーの 2 つが同時に得られます。ヘッダーは user:pass の base64 でリアルタイムに更新され、ハッシュ化された .htpasswd 行は「生成」を押したときに計算されます。すべて Web Crypto API とブラウザー内の WebAssembly ハッシャーでローカルに実行されるため、パスワードがサーバーにアップロードされることはありません。

htpasswd ジェネレーターとは?

htpasswd ジェネレーターは、HTTP Basic 認証で使う資格情報を作成する無料のブラウザー内ツールです。システム管理者や Web 開発者は、Apache の htpasswd コマンドラインツールをインストールせずに、ユーザー名とパスワードでディレクトリや管理画面を保護するために使います。.htpasswd ファイルに追記する user:hash の 1 行を生成し、bcrypt(最も強力、$2y$ 形式)、APR1(Apache の移植可能な MD5、$apr1$ 形式)、SHA-1(SHA 形式)から選べます。さらに対応する Authorization: Basic ヘッダーも導出するので、curl や REST クライアントで同じ資格情報をテストできます。bcrypt のコスト係数は設定で調整でき、より強く、または速くハッシュできます。

htpasswd ジェネレーターの使い方

  1. ログインに使うユーザー名を入力します。
  2. アカウントを保護するパスワードを入力します。この欄に留まり、どこにも送信されません。
  3. API リクエストや curl テストにだけ必要なら、Basic 認証ヘッダーをすぐにコピーします。
  4. 設定を開いてハッシュアルゴリズム(bcrypt・APR1・SHA-1)を選び、bcrypt の場合はコスト係数を指定します。
  5. 「生成」を押してハッシュ化された .htpasswd 行を計算し、サーバーの .htpasswd ファイルにコピーします。

使用例

1 ユーザー用の bcrypt 行

入力

ユーザー: admin、パスワード: s3cret、アルゴリズム: bcrypt(コスト 10)

出力

admin:$2y$10$...(60 文字の bcrypt ハッシュ、毎回ランダムなソルト)

API テスト用の HTTP Basic ヘッダー

入力

ユーザー: admin、パスワード: s3cret

出力

Basic YWRtaW46czNjcmV0

旧設定向けの APR1(Apache MD5)行

入力

ユーザー: web、パスワード: pass123、アルゴリズム: APR1

出力

web:$apr1$<ソルト>$<22 文字のハッシュ>

よくある質問

パスワードはサーバーに送信されますか?
いいえ。Basic ヘッダーも .htpasswd ハッシュも、Web Crypto API とブラウザー内の WebAssembly ハッシャーで完全にブラウザー内で計算されます。何もサーバーにアップロード・保存されないため、ツールはオフラインで動作し、パスワードがページの外に出ることはありません。
どのハッシュを選べばよいですか?
新規構成には bcrypt を使ってください。最も解読に強く、最新の Apache と nginx が対応しています。APR1($apr1$)は Apache の移植可能な MD5 で、旧設定に便利です。SHA-1({SHA})は最も弱いので、システムが明示的に要求しない限り避けるのが無難です。
「生成」ボタンに少し時間がかかるのはなぜですか?
bcrypt と APR1 は総当たり攻撃に強くするため意図的に遅く設計されており、bcrypt は初回使用時に小さな WebAssembly モジュールも読み込みます。コスト係数を上げると bcrypt は遅くなりますが強くなります。SHA-1 と Basic ヘッダーは瞬時です。
実際の htpasswd コマンドと一致しますか?
はい。bcrypt 行は Apache が期待する $2y$ 接頭辞を使い、APR1 はランダムソルト付きの標準 $apr1$ 形式、SHA-1 は {SHA} 方式を使い、すべて htpasswd が生成するファイルと互換です。
nginx に使えますか?
はい。nginx の auth_basic_user_file は同じ .htpasswd 形式を読むので、bcrypt や APR1 の行はそのまま使えます。nginx は {SHA} に対応しないため、bcrypt か APR1 を選んでください。

関連ツール