有效功能显示无效
Valid function showing unvalid
在 phpstorm php 7.4 中,我正在使用下面的函数,它似乎可以正常运行,但我在第 551 行的控制台中收到以下 EA 错误
[EA]生成的IV可能是假的,请添加必要的检查。
[EA] 使用第二个参数来确定所使用的算法是否具有强大的加密能力。
function _token()
{
$random_token = base64_encode(openssl_random_pseudo_bytes(32));
return $_SESSION['token'] = $random_token;
}
这是第 551 行
$random_token = base64_encode(openssl_random_pseudo_bytes(32));
这是红色突出显示
openssl_random_pseudo_bytes
如果您阅读 openssl_random_pseudo_bytes()
的手册,您会看到第二个参数用于确定生成的值是否“加密强度高”:
If passed into the function, this will hold a bool value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. true if it did, otherwise false
您需要传递此参数然后检查是否为真(因此可以使用该值):
function _token()
{
$random_token = base64_encode(openssl_random_pseudo_bytes(32, $strong));
if (!$strong) {
// deal with the token not being "cryptographically strong"
throw new RuntimeException('Token is not cryptographically strong');
}
return $_SESSION['token'] = $random_token;
}
对我来说,PHPStorm 仍然会显示该错误,但这正是它试图告诉您的。
在 phpstorm php 7.4 中,我正在使用下面的函数,它似乎可以正常运行,但我在第 551 行的控制台中收到以下 EA 错误
[EA]生成的IV可能是假的,请添加必要的检查。
[EA] 使用第二个参数来确定所使用的算法是否具有强大的加密能力。
function _token()
{
$random_token = base64_encode(openssl_random_pseudo_bytes(32));
return $_SESSION['token'] = $random_token;
}
这是第 551 行
$random_token = base64_encode(openssl_random_pseudo_bytes(32));
这是红色突出显示
openssl_random_pseudo_bytes
如果您阅读 openssl_random_pseudo_bytes()
的手册,您会看到第二个参数用于确定生成的值是否“加密强度高”:
If passed into the function, this will hold a bool value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. true if it did, otherwise false
您需要传递此参数然后检查是否为真(因此可以使用该值):
function _token()
{
$random_token = base64_encode(openssl_random_pseudo_bytes(32, $strong));
if (!$strong) {
// deal with the token not being "cryptographically strong"
throw new RuntimeException('Token is not cryptographically strong');
}
return $_SESSION['token'] = $random_token;
}
对我来说,PHPStorm 仍然会显示该错误,但这正是它试图告诉您的。