本ツールは、ウェブサイトで使用する 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 認証は、以下のレンタルサーバーで動作するのを確認しています。