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 — Dérive une clé à partir d'un mot de passe, en utilisant scrypt
$length
,$password
,$salt
,$opslimit
,$memlimit
Ceci est le pendant scrypt de sodium_crypto_pwhash().
Une raison courante d'utiliser cette fonction est de dériver les graines pour les clés cryptographiques à partir d'un mot de passe et d'un sel, puis d'utiliser ces graines pour générer les clés réelles nécessaires à un certain usage (par exemple sodium_crypto_sign_detached()).
length
La longueur du hachage de mot de passe à générer, en octets.
password
Le mot de passe pour lequel générer un hachage.
salt
Un sel à ajouter au mot de passe avant le hachage. Le sel doit être imprévisible, idéalement généré à partir d'une bonne source de nombres aléatoires telle que random_bytes(), et avoir une longueur d'au moins SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
octets.
opslimit
Représente une quantité maximale de calculs à effectuer. Augmenter ce nombre fera que la fonction nécessitera plus de cycles CPU pour calculer une clé. Il existe des constantes disponibles pour définir la limite d'opérations à des valeurs appropriées en fonction de l'utilisation prévue, dans l'ordre de la force : SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
et SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
.
memlimit
La quantité maximale de RAM que la fonction utilisera, en octets. Il existe des constantes pour vous aider à choisir une valeur appropriée, dans l'ordre de la taille : SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
et SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
. Typiquement, celles-ci devraient être associées aux valeurs opslimit
correspondantes.
Une chaîne d'octets de la longueur désirée.