【PHP8.x】SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE定数の使い方
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE定数は、PHPのSodium拡張機能が提供するパスワードハッシュ関数で使用される計算量の指標、いわゆる「操作回数制限(opslimit)」を表す定数です。この定数は、パスワードをハッシュ化する際のCPUの計算負荷を「中程度」に設定するために利用されます。
パスワードハッシュは、ユーザーのパスワードをデータベースに直接保存するのではなく、不可逆な形式に変換して保存することで、万が一データが漏洩しても元のパスワードが容易に特定されないようにする重要なセキュリティ技術です。opslimitは、ハッシュ計算にどれだけの時間とリソースを費やすかを制御するパラメータであり、その値が大きいほど、ハッシュの生成に時間がかかり、ブルートフォース攻撃や辞書攻撃といったパスワード解読攻撃に対する耐性が向上します。しかし、その分ハッシュ計算自体の処理速度は遅くなります。
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATEは、セキュリティとパフォーマンスのバランスが取れた「中程度の」設定を提供します。これは一般的なWebアプリケーションのユーザー認証など、多くの用途で推奨されるベースラインとなる設定の一つです。例えば、sodium_crypto_pwhash()関数にこの定数をopslimit引数として渡すことで、指定されたセキュリティレベルでパスワードをハッシュ化できます。
Sodium拡張機能には、他にもより低いセキュリティで高速なSODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVEや、より高いセキュリティで低速なSODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVEといった定数も存在します。システムのセキュリティ要件やサーバーの処理能力に応じて、これらのopslimit定数の中から最適なものを選択することが、安全なシステム構築において非常に重要となります。
構文(syntax)
1<?php 2echo SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE; 3?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE は、パスワードハッシュ生成における操作回数の推奨値を示す整数定数です。この定数は、システムリソースとセキュリティのバランスが取れた「中程度」の操作回数を表します。