Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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 は、パスワードハッシュ生成における操作回数の推奨値を示す整数定数です。この定数は、システムリソースとセキュリティのバランスが取れた「中程度」の操作回数を表します。

関連コンテンツ