PHPのお勉強!

PHP TOP

定義済み定数

以下の定数は、PHP コアに含まれており、常に利用可能です。

PASSWORD_BCRYPT (string)

PASSWORD_BCRYPT を使うと、 CRYPT_BLOWFISH アルゴリズムで新たなパスワードハッシュを作ります。

これは常に、"$2y$" crypt フォーマットを使ったハッシュになります。 長さは常に 60 文字です。

サポートするオプション

  • salt (string) - パスワードのハッシュに使うソルトを手動で設定します。 これは、自動生成されたソルトを上書きすることに注意しましょう。

    省略した場合は、パスワードをハッシュするたびに password_hash() がランダムなソルトを自動生成します。これは意図したとおりの操作モードです。 および PHP 7.0.0 以降でソルト・オプションは非推奨になりました。

  • cost (int) - 利用するアルゴリズムのコストを表します。 値の例については crypt() のページを参照ください。

    省略した場合のデフォルトは 10 です。この値でもかまいませんが、 ハードウェアの性能が許すならもう少し高くすることもできます。

PASSWORD_BCRYPT_DEFAULT_COST (int)

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I を使うと、 Argon2i アルゴリズムで新たなパスワードハッシュを作ります。

サポートするオプション

  • memory_cost (int) - Argon2 ハッシュの計算に用いるメモリの最大値 (キロバイト数) を設定します。 デフォルトは PASSWORD_ARGON2_DEFAULT_MEMORY_COST です。

  • time_cost (int) - Argon2 ハッシュの計算にかける時間の最大値を設定します。 デフォルトは PASSWORD_ARGON2_DEFAULT_TIME_COST です。

  • threads (int) - Argon2 ハッシュの計算に用いるスレッド数を設定します。 デフォルトは PASSWORD_ARGON2_DEFAULT_THREADS です。 libargon2 を使う場合のみ利用可能で、 libsodium の実装には含まれていません。

PHP 7.2.0 以降で利用可能です。

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID を使うと、 Argon2id アルゴリズムで新たなパスワードハッシュを作ります。 サポートされるオプションは、 PASSWORD_ARGON2I と同じです。

PHP 7.3.0 以降で利用可能です。

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (int)

ハッシュの計算に用いるメモリのデフォルト値。

PHP 7.2.0 以降で利用可能です。

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

ハッシュの計算にかける時間のデフォルト値。

PHP 7.2.0 以降で利用可能です。

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Argon2lib が用いるデフォルトのスレッド数。 libsodium の実装では利用できません。

PHP 7.2.0 以降で利用可能です。

PASSWORD_ARGON2_PROVIDER (string)

PHP 7.4.0 以降で利用可能です。

PASSWORD_DEFAULT (mixed)

アルゴリズムを指定しなかったときのデフォルトとして使うアルゴリズム。 PHP のバージョンが上がるときに、 その時点でより強力なハッシュアルゴリズムに対応していればデフォルトが変わる可能性があります。

この定数の値は、今後変わる可能性がある (きっと変わる) ことに注意しましょう。 つまり、生成されるハッシュの長さも変わる可能性があるということです。 したがって、PASSWORD_DEFAULT を使う場合は、 ハッシュの格納先は 60 文字以上でも格納できるようにしておく必要があります (255 文字程度にしておくことをおすすめします)。

この定数の値

変更履歴

バージョン 説明
7.4.0 パスワードのアルゴリズムのID (PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID, PASSWORD_DEFAULT) は、string に変更されました。 これより前のバージョンでは、int でした。

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top