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 — Deriva uma chave de uma senha, usando scrypt
$length
,$password
,$salt
,$opslimit
,$memlimit
Esta é a contrapartida scrypt para sodium_crypto_pwhash().
Um motivo comum para usar essa função específica é derivar as sementes para chaves criptográficas a partir de uma senha e um salt, e então usar essas sementes para gerar as chaves reais necessárias para algum propósito (por exemplo, sodium_crypto_sign_detached()).
length
O comprimento do hash da senha a ser gerado, em bytes.
password
A senha para a qual será gerado um hash.
salt
Um salt para adicionar à senha antes do hash. O salt deve ser imprevisível, idealmente gerado a partir de uma boa fonte de números aleatórios, como random_bytes(), e ter um comprimento mínimo de SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
bytes.
opslimit
Representa uma quantidade máxima de cálculos a serem realizados. Aumentar esse número fará com que a função exija mais ciclos de CPU para calcular uma chave. Existem algumas constantes disponíveis para definir o limite de operações para valores apropriados, dependendo do uso pretendido, em ordem de intensidade: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
e SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
.
memlimit
A quantidade máxima de RAM que a função utilizará, em bytes. Existem constantes para ajudar a escolher um valor apropriado, em ordem de tamanho: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
e SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
. Normalmente, elas devem ser pareadas com os valores opslimit
correspondentes.
Uma string de bytes do comprimento desejado.