本文へスキップ
にゃんこツール

.htpasswd生成(Basic認証用・bcrypt/SHA-1)

ApacheのBasic認証に使う .htpasswd の行を、ユーザー名とパスワードから生成します。複数ユーザーをまとめて作成でき、確認用の Authorization ヘッダーも出力します。ブラウザ内で処理され、パスワードがサーバーに送信されることはありません。認証の設定自体は .htaccess生成 や、単体のハッシュ生成・照合は bcryptハッシュ生成・照合 をご利用ください。

🔒 ブラウザ内で完結・入力データはサーバーに送信されません

1行に1ユーザー、「ユーザー名:パスワード」の形式です。パスワードに「:」を含めても構いませんが、ユーザー名には使えません。

値が1増えると計算時間が約2倍になります。ユーザー数が多いと時間がかかります。

使い方

  1. 「ユーザーとパスワード」に、「ユーザー名:パスワード」の形式で1行ずつ入力します。
  2. 「ハッシュ方式」を選びます(通常はbcrypt)。bcryptでは「コスト」も選べます。
  3. 「生成する」を押し、出力された .htpasswd の内容を「コピー」または「ダウンロード」します。
  4. サーバー上のWeb公開ディレクトリの外に .htpasswd として置き、.htaccess の AuthUserFile にそのパスを指定します。

注意事項

  • bcryptは$2y$形式で出力します。Apacheの標準的なbcrypt形式です($2b$と計算結果は同じです)。Apache 2.4以降で利用できます。
  • SHA-1はソルトがなく高速に計算できるため、総当たりに弱い方式です。bcryptに対応していない古い環境でだけ使ってください。
  • bcryptは先頭72バイトまでのパスワードに対応します。72バイトを超える行はエラーになります。
  • Basic認証はパスワードをBase64にするだけで、暗号化ではありません。必ずHTTPSと併用してください。
  • ここで入力するのは、本番で使っているパスワードではなくテスト用の値をおすすめします。入力内容は保存・送信されませんが、画面共有などにご注意ください。

用語解説

.htpasswd

Basic認証のユーザー名とパスワードのハッシュを「ユーザー名:ハッシュ」の形で1行ずつ保存するファイルです。Web公開ディレクトリの外に置くのが基本です。

Basic認証

HTTPの標準的な認証方式です。ブラウザが「ユーザー名:パスワード」をBase64にして Authorization ヘッダーで送ります。

{SHA}形式

パスワードのSHA-1をBase64にして、先頭に{SHA}を付けたhtpasswdの形式です。ソルトがなく、現在は推奨されません。

よくある質問

bcryptとSHA-1はどちらを選べばよいですか?

基本的にはbcryptを選んでください。bcryptはソルトを含み、意図的に計算が遅いため総当たりに強い方式です。SHA-1({SHA}形式)はソルトがなく高速に計算できるため、bcryptに対応していない古い環境でだけ使います。

生成した .htpasswd はどこに置けばよいですか?

Webから直接ダウンロードできない、公開ディレクトリの外に置くのが安全です。そのうえで .htaccess に AuthType Basic、AuthName、AuthUserFile(.htpasswd の絶対パス)、Require valid-user を書きます。設定の雛形は .htaccess生成ツールでも作れます。

ユーザー名やパスワードにコロン(:)は使えますか?

ユーザー名には使えません。Basic認証が「ユーザー名:パスワード」の最初のコロンで区切るためです。パスワードには含められます。このツールも最初のコロンでユーザー名とパスワードを分けます。

同じパスワードでも毎回違うハッシュになるのはなぜですか?

bcryptは生成のたびにランダムなソルトを加えるためで、正常な動作です。どのハッシュでもApacheは同じパスワードで認証できます。SHA-1はソルトがないので、同じパスワードなら同じ結果になります。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる