質問: ### 前提・実現したいこと `Apache`を使っていて、ベーシック認証をするときに`.htpasswd`を作成します。 調べると、 このファイルの中身はユーザー名とパスワードをコロンで区切って、 パスワードはBASE64でエンコードしたものを書き込むようです。 ユーザー名: user001 パスワード: aaa の場合 `user01:tiJBC0Bwy93no` ### 聞きたいこと パスワードが一意ではなく、 複数パターンあるのは何故ですか? こちらのサイトで「.htpasswdを作成ボタン」 を押すと何度も新しいパスワードが作られます。 こちらのサイトでBASE64 encodeしても一意のものしか出てきません。 MD5やSHA-1とは違いハッシュ関数でないのは分かるのですが、 同じBASE64なのに規格が違うといったことがあるのでしょうか?
回答: `man htpasswd`すれば分かりますが、`.htpasswd`で使われるパスワードのハッシュ化には複数の種類があります。「平文でBase64エンコードする」という種類は無さそうです。 > > user01:tiJBC0Bwy93no > > > はデフォルトのcrypt関数を使ったものでしょう。先頭2文字がsaltで、これを使ったハッシュです。