【问题标题】:Valid function showing unvalid有效功能显示无效
【发布时间】:2021-01-02 16:03:14
【问题描述】:

在 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

【问题讨论】:

    标签: php openssl php-openssl


    【解决方案1】:

    如果您阅读openssl_random_pseudo_bytes() 的手册,您会看到有第二个参数用于确定生成的值是否“加密强”:

    如果传递给函数,这将保存一个布尔值,用于确定所使用的算法是否“加密强度高”,例如,可安全用于 GPG、密码等。如果是,则为 true,否则为 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 仍然显示该错误,但这就是它试图告诉你的。

    【讨论】:

    • 我添加了第二个参数但它仍然抛出生成的 IV 可能是错误的,请添加必要的检查错误,不确定它是否是误报
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多