【PHP8.x】sodium_crypto_pwhash_str_verify関数の使い方

作成日: 更新日:

sodium_crypto_pwhash_str_verify関数は、ユーザーが入力した生のパスワード文字列が、あらかじめ安全にハッシュ化され保存されているパスワードハッシュ文字列と一致するかどうかを検証する関数です。

Webアプリケーションなどでユーザー認証を実装する際に、セキュリティ上、生のパスワードをデータベースに直接保存することは非常に危険です。そのため、パスワードはsodium_crypto_pwhash_str()のような関数を用いてハッシュ化され、そのハッシュ値のみが保存されます。

このsodium_crypto_pwhash_str_verify関数は、ユーザーがログイン時に入力したパスワードを受け取り、保存されているハッシュ値と比較することで、入力されたパスワードが正しいものかを判断します。具体的には、入力されたパスワードを内部で同じアルゴリズムとパラメータでハッシュ化し、その結果と保存されたハッシュ値を比較します。両者が一致すれば、関数はtrueを返し、認証成功を示します。一致しなければfalseを返し、認証失敗となります。

この機能により、万が一データベースが侵害された場合でも、攻撃者はハッシュ化されたパスワードしか入手できず、元のパスワードを容易に特定できないため、ユーザーのセキュリティが大幅に向上します。パスワードの安全な取り扱いにおいて不可欠な役割を果たす重要な関数です。

基本的な使い方

構文(syntax)

1sodium_crypto_pwhash_str_verify(string $hash, string $password): bool

引数(parameters)

string $hash, string $password

  • string $hash: 検証対象となる、ソルトとオプション情報を含むハッシュ化されたパスワード文字列
  • string $password: 検証する平文のパスワード文字列

戻り値(return)

bool

指定されたパスワードハッシュ文字列が、指定されたパスワードと一致するかどうかを示す真偽値を返します。一致する場合は true、一致しない場合は false を返します。

【PHP8.x】sodium_crypto_pwhash_str_verify関数の使い方 | いっしー@Webエンジニア