【PHP8.x】PASSWORD_ARGON2_DEFAULT_TIME_COST定数の使い方
PASSWORD_ARGON2_DEFAULT_TIME_COST定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
PASSWORD_ARGON2_DEFAULT_TIME_COST定数は、PHPのパスワードハッシュ機能において、Argon2IDアルゴリズムで利用される時間コスト(time cost)のデフォルト値を表す定数です。
パスワードをデータベースなどに安全に保存する際、元のパスワードをそのまま保存するのではなく、ハッシュ化という不可逆な処理を施すことが一般的です。このハッシュ化の計算に意図的に時間をかけることで、もしハッシュ値が漏洩した場合でも、攻撃者が大量の試行によって元のパスワードを特定する「ブルートフォース攻撃」などの総当たり攻撃を非常に困難にすることができます。
この「計算にかける時間」を制御するパラメータがtime costです。time costの値が大きいほど、パスワードのハッシュ化にかかる時間が長くなり、セキュリティ強度が増しますが、同時にサーバーのリソース消費も増大します。
PHPのpassword_hash()関数を使用し、引数にPASSWORD_ARGON2IDを指定してパスワードをハッシュ化する際に、time costに関するオプション(time_cost)を明示的に指定しなかった場合、このPASSWORD_ARGON2_DEFAULT_TIME_COST定数が持つデフォルト値が自動的に適用されます。この定数の値は通常4です。
この定数を理解することは、アプリケーションのセキュリティとパフォーマンスのバランスを適切に考慮したパスワード処理を実装する上で非常に重要です。システム要件に応じてデフォルト値を使用するか、より高いセキュリティ要件に合わせてtime costを調整するかを検討することが推奨されます。
構文(syntax)
1<?php 2echo PASSWORD_ARGON2_DEFAULT_TIME_COST; 3?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
PASSWORD_ARGON2_DEFAULT_TIME_COST定数は、Argon2パスワードハッシュアルゴリズムでデフォルトとして使用される時間コストの値を返します。この値は、ハッシュ計算にかかる計算負荷の強度を調整するために使用されます。