Basic認証(.htpasswd)用のパスワードハッシュ生成

パスワード

変換方式

概要

本ツールは、ウェブサイトで使用する Basic 認証に必要なパスワードのハッシュ(暗号化された文字列)を生成するツールです。 ID(ユーザー名)を入力したくない人もいることを考慮して、本ツールはパスワードだけ入力するようにしています。 生成されたハッシュは以下のように「IDやユーザー名:ハッシュ」の形式で .htpasswd のファイル内に記述します。

記述例
tanaka:$2y$10$JgyWpDYRi5zBiae7ZadFE.n.F9awpxzP7B65O/hWTtoto3P2IS1Ia

生成されるハッシュは、同じパスワードでも毎回異なる文字列が生成されます。 どれを使ってもOKです。

変換方式

PHP によるハッシュを生成する関数の選択です。 password_hash は9文字以上のパスワードでも有効な強力なハッシュを生成できます。 常に60文字の文字列になります。 PASSWORD_BCRYPT を指定し、CRYPT_BLOWFISH アルゴリズムを使用しています。 使用しているサーバーにてこのハッシュで動作するなら、こちらをオススメします。

crypt は8文字以内のパスワードに対して2文字の salt を使って13文字のハッシュを生成します。 本関数は salt の形式によりいろいろな方式を選べますが、本ツールでは標準のDESベースのハッシュ(CRYPT_STD_DES)を使用しています。 これは9文字以上のパスワードは無視され、先頭の8文字で一致してしまいます。 salt は本ツールが自動でランダムに付加しています。 昔から使われているタイプなので、たいていの環境で使えると思われます。

これらのハッシュを使用した .htpasswd による Basic 認証は、以下のレンタルサーバーで動作するのを確認しています。

  • さくらのレンタルサーバ(さくらインターネット)
  • エックスサーバー
  • コアサーバー(GMOデジロック)

このエントリーをはてなブックマークに追加