UTILS.
100% ブラウザ内で完結
🔒

.htpasswd ジェネレーター

ソルト付きAPR1-MD5またはSHA-1ハッシュを使ったApache/nginxの.htpasswd行を、ブラウザ内で完全オフラインで作成します。

— ここに結果が表示されます —
bcryptは含まれていません。APR1-MD5はソルト付きで推奨。SHA-1はソルトなしで、レガシー用途のみ。

このツールについて

Apacheやnginxの HTTP Basic 認証用に、貼り付けてすぐ使える.htpasswdの認証情報行(username:hash)を生成します。ユーザー名、パスワード、ハッシュ化のすべてがブラウザ内でローカルに行われます — 何もアップロードされず、evalや外部ライブラリはありません。

2つのアルゴリズムに対応しています。APR1-MD5(Apacheの $apr1$ 形式)は純粋なJavaScriptで実装されており、自己完結型のMD5と完全な1000ラウンドのソルト付きcryptループを含み、crypto.getRandomValues から引いた8文字のランダムソルトを使います。SHA-1はブラウザ組み込みの crypto.subtle.digest を使い、base64エンコードして {SHA} を接頭辞に付け、htpasswd -s の出力と一致します。正しく高速な純粋JSのbcryptをクライアントサイドで実行するのは非現実的なため、bcryptは意図的に含めていません。

ユーザー名とパスワードを入力し、アルゴリズムを選び、結果の行を.htpasswdファイルにコピーしてください。「新しいソルト」でAPR1のソルトを振り直せます(保存のたびに同じパスワードでも異なるハッシュが生成されますが、これは期待どおりで正しい動作です)。

よくある質問

私のパスワードはどこかに送信されますか?
いいえ。すべてのハッシュ化は、APR1には組み込みのMD5を、SHA-1にはネイティブの crypto.subtle を使って、すべてブラウザ内で実行されます。何も送信されず、evalはありません。
どのアルゴリズムを選ぶべきですか?
APR1-MD5 ($apr1$) は推奨されるApacheのデフォルトでソルト付きなので、ここでは2つのうち安全な方です。SHA-1 ({SHA}) はソルトなしで、主にレガシー環境やnginx互換性に役立ちます。
なぜAPR1ハッシュは毎回変わるのですか?
APR1はランダムな8文字のソルトを使うため、同じパスワードでも毎回異なるハッシュが生成されます。これは仕様です。Apacheはログイン確認時に、保存されたハッシュからソルトを読み戻します。
なぜbcryptが提供されないのですか?
bcryptは意図的に除外しています。正しい純粋JavaScriptのbcryptはブラウザで大きく低速になるため、本ツールは代わりに信頼性が高くオフラインのAPR1-MD5とSHA-1モードを搭載しています。

その他のツール