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

作成日: 更新日:

sodium_crypto_pwhash_str関数は、ユーザーのパスワードを安全にハッシュ化するための文字列を生成する関数です。データベースなどにユーザーのパスワードをそのまま保存することはセキュリティ上の大きなリスクとなるため、この関数を用いて不可逆なハッシュ値を作成し、保存することが推奨されます。

この関数は、入力されたパスワードと、内部で自動的に生成されるランダムな「ソルト」と呼ばれる情報、さらには計算負荷を調整するためのパラメータ(メモリ使用量や計算回数など)を組み合わせて、非常に強力でユニークなハッシュ文字列を生成します。生成されたハッシュ文字列には、これらのソルトやパラメータの情報も安全に含まれています。

一度この関数でハッシュ化されたパスワードは元の形に戻すことはできません。ユーザーが次回ログインする際には、入力されたパスワードと保存しておいたハッシュ文字列をこの関数で再度処理し、その結果を比較することで、パスワードの正当性を安全に検証できます。Nacl/Sodiumライブラリが提供するこの関数は、現代のセキュリティ要件を満たす、堅牢なパスワードハッシュ手法を実現します。

基本的な使い方

構文(syntax)

1<?php
2$password = 'YourSecretPassword';
3$hashedPassword = sodium_crypto_pwhash_str($password, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE);
4echo $hashedPassword;
5?>

引数(parameters)

string $password, int $opslimit, int $memlimit

  • string $password: ハッシュ化するパスワード文字列
  • int $opslimit: 鍵導出関数の計算回数。通常は高めに設定します。
  • int $memlimit: 鍵導出関数で使用するメモリ量。通常は高めに設定します。

戻り値(return)

string

指定されたパスワードハッシュ文字列を生成します。この関数は、成功した場合に生成されたハッシュ文字列を返します。

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