如何使用openssl_random_pseudo_bytes函数?php
我想生成令牌,将其用作登录身份验证,因此我想确保令牌算法在加密方面是强大的 我使用这段代码来实现:如何使用openssl_random_pseudo_bytes函数?php,php,cryptography,token,php-openssl,Php,Cryptography,Token,Php Openssl,我想生成令牌,将其用作登录身份验证,因此我想确保令牌算法在加密方面是强大的 我使用这段代码来实现: $crypto_strong = false; while($crypto_strong !== false) $openssl =openssl_random_pseudo_bytes(128,$crypto_strong); $token = bin2hex($openssl); 正确吗?阅读,它将$crypto\u strong参数描述为: 如果传递到函数中,它将保存一个布尔值,该值确定所
$crypto_strong = false;
while($crypto_strong !== false)
$openssl =openssl_random_pseudo_bytes(128,$crypto_strong);
$token = bin2hex($openssl);
正确吗?阅读,它将$crypto\u strong参数描述为:
如果传递到函数中,它将保存一个布尔值,该值确定所使用的算法是否加密性强,例如,可安全用于GPG、密码等。如果是,则为TRUE,否则为FALSE
$crypto_strong的值对于特定系统是固定的。因此,如果系统不使用强算法,代码将进入无限循环
根据这些文件,这是很少是假的,但有些系统可能已经损坏或陈旧。因此,听起来您不太可能遇到错误值的例子。也许在这些情况下,中止过程并向用户显示错误更合适
我不完全清楚您的背景用例,所以我不知道这种通用方法是否适合您。但是你发布的代码肯定是错误的。你的代码完全被破坏了。您的循环将永远不会运行,$openssl将永远不会被设置。您至少应该检查$crypto_strong!==符合事实的