Function is expecting salt length to be EXACTLY SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES bytes. It throws error if you provide longer salt string. For example: salt of 64 bytes will throw an error.(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_pwhash_scryptsalsa208sha256 — scrypt を使い、パスワードからキーを導出する
$length,$password,$salt,$opslimit,$memlimitsodium_crypto_pwhash() の scrypt 対応版です。
この特別な関数を使う理由は、 パスワードとソルトから、暗号化キーのシードを導出し、 そのシードを特定の目的に必要とされる実際のキー (たとえば sodium_crypto_sign_detached() で使う) を生成することです。
lengthpasswordsaltSODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
バイトである必要があります。
opslimitSODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE と SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE です。
memlimitSODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE と SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE があります。
これらの値は、opslimit
と一致するものとペアになるべきです。
指定された長さのバイト列を文字列として返します。