我想生成令牌,将其用作登录身份验证,所以我想确保令牌算法在加密方面是强大的!
我正在使用这段代码来实现这一点:
$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
的值将是固定的。因此,如果你的系统不使用强大的算法,你的代码将进入一个无限循环。
根据这些相同的文档,"这很少是错误的,但有些系统可能已经损坏或旧了"。所以听起来你不太可能遇到错误值的例子。也许在这些情况下,中止程序并向用户显示错误会更合适。
我不完全清楚你的背景用例,所以我不知道这种通用方法是否适合你。但你发布的代码肯定是错误的。