牛牛在线工具

sodium_crypto_pwhash_str()

收录 8868 个 PHP 函数,含用途说明与用法示例。

sodium_crypto_pwhash_str()

将密码散列为字符串格式,以便存储和验证用户密码

函数名称:sodium_crypto_pwhash_str() 适用版本:PHP 7.2.0以上 函数描述:该函数用于将密码散列为字符串格式,以便存储和验证用户密码。它基于Argon2密码散列算法,并使用随机生成的salt和适当的参数来增加密码的安全性。 语法:string sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit) 参数: $password: 要散列的密码字符串。 $opslimit: 迭代次数,用于控制密码散列的计算复杂度。较高的值将增加计算时间并提高密码的安全性。推荐值为至少 4。 $memlimit: 内存限制,用于控制密码散列的内存使用。较高的值将增加内存开销并提高密码的安全性。推荐值为至少 64 * 1024。 返回值:返回散列后的密码字符串,或者在失败时返回 false。 示例: $password = "myPassword123"; // 生成随机的salt $salt = random_bytes(SODIUM_CRYPTO_PWHASH_SALTBYTES); // 定义迭代次数和内存限制 $opslimit = 4; $memlimit = 64 * 1024; // 生成散列后的密码字符串 $hashedPassword = sodium_crypto_pwhash_str($password, $opslimit, $memlimit); // 存储散列后的密码字符串到数据库或其他持久化存储中 // 验证密码 if (sodium_crypto_pwhash_str_verify($hashedPassword, $password)) { echo "密码验证通过"; } else { echo "密码验证失败"; } 注意事项: 在每次生成散列密码时,应使用不同的salt,以增加密码的安全性。可以使用随机字节生成函数(如 random_bytes())来生成salt。 迭代次数和内存限制的值应根据具体情况进行调整,以平衡安全性和性能需求。 在验证密码时,可以使用 sodium_crypto_pwhash_str_verify() 函数。它接受散列后的密码字符串和原始密码作为参数,如果验证通过则返回 true,否则返回 false。