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

作成日: 更新日:

sodium_crypto_pwhash_scryptsalsa208sha256_str関数は、パスワードを安全にハッシュ化する処理を実行する関数です。この関数は、ユーザーのパスワードをデータベースなどに保存する際に、元のパスワードが直接知られることがないよう、一方向の暗号化を適用するために使用されます。パスワードのハッシュ化は、情報漏洩が発生した場合にパスワードが不正に利用されるリスクを大幅に低減するための重要なセキュリティ対策です。

具体的には、この関数はScrypt-Salsa208-SHA256という堅牢なパスワードハッシュアルゴリズムを採用しています。Scryptは、パスワードの推測や解析を試みるブルートフォース攻撃や辞書攻撃に対して高い耐性を持つように設計されており、計算に時間とメモリを意図的に多く消費させることで、攻撃者が効率的にパスワードを解読するのを困難にします。

生成されるハッシュ文字列は、元のパスワードを復元できない形式であり、ユーザーがログイン時に提供するパスワードが正しいかどうかを検証する際に、同じアルゴリズムでハッシュ化した値と比較することで確認します。PHPのSodium拡張機能の一部として提供されており、高度なセキュリティ要件を持つアプリケーションにおいて、パスワード管理の安全性を確保するための信頼できる選択肢の一つとして利用できます。適切なパラメータ設定を行うことで、さらにセキュリティを強化することが可能です。

基本的な使い方

構文(syntax)

1<?php
2$password = 'your_secure_password';
3$hashedPassword = sodium_crypto_pwhash_scryptsalsa208sha256_str(
4    $password,
5    SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE,
6    SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
7);

引数(parameters)

string $password, int $opslimit, int $memlimit

  • string $password: ハッシュ化するパスワードを指定する文字列
  • int $opslimit: 作業回数制限を指定する整数。CPU負荷を調整します。
  • int $memlimit: メモリ制限を指定する整数。メモリ使用量を調整します。

戻り値(return)

string

この関数は、指定されたパスワードとソルトを使用して計算されたハッシュ値を文字列として返します。

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