htpasswd ジェネレーター オンライン
ユーザー名とパスワードから bcrypt または SHA-1 の .htpasswd ユーザー行を生成できます。すべてブラウザ内で動作し、認証情報は端末上に留まります。
htpasswd ジェネレーターは、パスワードをブラウザ内でハッシュ化します — bcrypt は遅延読み込みされるモジュールで、SHA-1 は Web Crypto API で行われます。入力したユーザー名とパスワードは端末から外に出ることはなく、ArrayKit にアップロードされることもありません。
Basic 認証ジェネレーターを開く
htpasswd ジェネレーター について
htpasswd ジェネレーターは、ユーザー名とパスワードを、Apache や nginx の HTTP Basic 認証向けの 1 つの .htpasswd 行に変えます。Apache が $2y$ として書く推奨のソルト付きスキームである bcrypt、または古いセットアップ向けのレガシーな {SHA} スキーム(ソルトなしの SHA-1、Base64)を選べます。ツールはコピーやダウンロードして .htpasswd ファイルに追記できる user:hash 行を出力し、その後 AuthType Basic や nginx の auth_basic_user_file でディレクトリを保護できます。ステージングサイト、内部ダッシュボード、リバースプロキシの背後のディレクトリをロックダウンするシステム管理者や開発者に適しています。bcrypt ハッシュは毎回新しいランダムなソルトで実行され、SHA-1 は Web Crypto API を使います — すべてブラウザ内なので、入力したパスワードが端末から外に出ることはありません。
機能
- ユーザー名とパスワードから .htpasswd ファイル用の user:hash 行を生成
- ランダムなソルト付きの bcrypt スキームを、Apache の $2y$ プレフィックスで出力
- 古い Apache と nginx 設定向けのレガシーな {SHA} スキーム(Base64 SHA-1)
- 行をコピーするか、.htpasswd ファイルとして直接ダウンロード
- ファイルを壊すコロン・スペース・改行を含むユーザー名を拒否
- 各 bcrypt 実行が新しいハッシュを生むので、同じパスワードでも一致しない
- Apache mod_auth_basic と nginx auth_basic_user_file の両方で動作
- パスワードをブラウザ内でハッシュし、サーバーに何も送らない
htpasswd ジェネレーター の使い方
- ディレクトリを保護したいユーザー名とパスワードを入力する
- bcrypt(推奨)またはレガシーな SHA-1 の {SHA} アルゴリズムを選ぶ
- 生成された user:hash 行をコピーするか、.htpasswd ファイルをダウンロードする
- 行をサーバーの .htpasswd に追記し、認証設定から参照する
例
入力
username: admin
password: password
algorithm: SHA-1
出力
admin:{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=
SHA-1 は {SHA} + Base64 を生みます。bcrypt なら代わりに admin:$2y$... を出力します。
よくあるエラーとトラブルシューティング
- Apache が 'crypt not supported' をログに出すか、bcrypt 行が拒否される。 — .htpasswd の bcrypt には mod_authn_file を備えた Apache 2.4 以降が必要です。古いサーバーでは {SHA} スキームに切り替えるか、Apache をアップグレードしてください。
- 行全体が 1 行になってしまい、認証がまったく成功しない。 — 各 .htpasswd エントリは改行で終わる独自の行でなければなりません。ファイルをダウンロードすると改行が付きます。貼り付ける場合は、行の後に Enter を押してください。
- ユーザー名にコロンが含まれ、ファイルが誤って分割される。 — Apache は各エントリを最初のコロンで分割するので、ユーザー名のコロンが解析を壊します。コロンを取り除いてください — このためにジェネレーターがブロックします。
- {SHA} ハッシュをコピーしたのにログインがまだ失敗する。 — {SHA} スキームはソルトなしの SHA-1 で、パスワードの大文字小文字を区別します。正確なパスワードを確認し直し、インターネットに面するものには bcrypt を優先してください。
よくある質問
- .htpasswd ファイルにはどのアルゴリズムを使うべきですか?
- ネットワーク越しに到達できるものには bcrypt を使ってください — ソルト付きで意図的に遅いので、ブルートフォースに耐えます。{SHA} の SHA-1 スキームはソルトなしで、bcrypt を実行できないレガシーサーバーに対してのみ使う価値があります。
- なぜ bcrypt ハッシュは $2a$ ではなく $2y$ で始まるのですか?
- $2y$ は Apache の htpasswd ツールが書くプレフィックスです。bcrypt ライブラリはしばしば $2a$ や $2b$ を出力しますが、アルゴリズムは同一なので、このジェネレーターは Apache がディスクに生むものに合わせてプレフィックスを $2y$ に正規化します。
- 生成された行を .htpasswd ファイルに追加するには?
- user:hash 行をコピーするか .htpasswd ファイルをダウンロードし、行を独自の行として追記してください。その後、AuthUserFile(Apache)や auth_basic_user_file(nginx)をそのファイルに向け、サーバーをリロードしてください。
- 同じパスワードは毎回同じ htpasswd 行を生みますか?
- bcrypt では、いいえ — 実行ごとに新しいランダムなソルトが使われるので、同じパスワードでも検証は通る異なるハッシュになります。{SHA} スキームではハッシュはソルトなしなので、同じパスワードは常に同じ行を生みます。
- 入力したパスワードは、ハッシュ化のためにサーバーに送られますか?
- いいえ。bcrypt はブラウザ内で実行され、SHA-1 は組み込みの Web Crypto API を使うので、入力したユーザー名とパスワードは端末上でハッシュ化され、ArrayKit にアップロードされることはありません。
関連ツール
すべての ArrayKit ツール