如何使用openssl_random_pseudo_bytes函数? PHP

时间:2015-02-24 14:10:44

标签: php cryptography token php-openssl

我想生成令牌,将其用作登录身份验证,因此我想确保令牌算法加密强大!

我正在使用这段代码来实现:

$crypto_strong = false;
while($crypto_strong !== false)
$openssl =openssl_random_pseudo_bytes(128,$crypto_strong);
$token = bin2hex($openssl);

是正确的吗?

1 个答案:

答案 0 :(得分:0)

阅读the docs,它将$crypto_strong参数描述为:

  

如果传入函数,这将包含一个布尔值,用于确定所使用的算法是否为“加密强度”,例如,使用GPG,密码等是否安全 TRUE 如果有,否则 FALSE

$crypto_strong的值将针对特定系统进行修复。因此,如果您的系统没有使用强大的算法,您的代码将进入无限循环。

根据那些相同的文档," 它很少见,但是有些系统可能会被破坏或者旧的"。所以听起来你不太可能遇到虚假价值的例子。也许在这些情况下,中止程序并向用户提出错误会更合适。

我对你的背景用例并不完全清楚,所以我不知道这种一般方法对你来说是否正确。但肯定你发布的代码是错误的。