我想生成令牌,将其用作登录身份验证,所以我想确保令牌算法在密码学上是强大的!
我正在使用这段代码来实现这一点:
$crypto_strong = false;
while($crypto_strong !== false)
$openssl =openssl_random_pseudo_bytes(128,$crypto_strong);
$token = bin2hex($openssl);
那是对的吗 ?
我想生成令牌,将其用作登录身份验证,所以我想确保令牌算法在密码学上是强大的!
我正在使用这段代码来实现这一点:
$crypto_strong = false;
while($crypto_strong !== false)
$openssl =openssl_random_pseudo_bytes(128,$crypto_strong);
$token = bin2hex($openssl);
那是对的吗 ?
阅读文档,它将$crypto_strong
参数描述为:
如果传递给函数,这将保存一个布尔值,该值确定所使用的算法是否“加密强”,例如,可以安全地与 GPG、密码等一起使用。如果是,则为TRUE,否则为FALSE
$crypto_strong
对于特定系统,的值将是固定的。因此,如果您的系统不使用强算法,您的代码将进入无限循环。
根据这些相同的文档,“这很少是 FALSE,但某些系统可能已损坏或陈旧”。所以听起来你不太可能遇到错误值的例子。也许在这些情况下,中止程序并向用户显示错误会更合适。
我对您的背景用例并不完全清楚,所以我不知道这种通用方法是否适合您。但肯定你发布的代码是错误的。