【问题标题】:Phpseclib running on php5.5phpseclib 在 php5.5 上运行
【发布时间】:2014-11-14 04:20:51
【问题描述】:

我的应用程序过去在 Amazon Linux 服务器上的 PHP 5.4.34 上运行良好。我们升级到 PHP 5.5.18 以使用一些较新的库。现在 phpseclib 生成错误: 未定义的偏移量:/var/www/lib/ShellClient/phpseclib/Math/BigInteger.php 第 1073 行中的 5827

在这个应用程序中,我通过 Net_SSH2 登录并执行另一个 Amazon Linux 服务器的命令。

我从 Crypt_RSA 和 Net_SSH2 开始 以下代码在无限循环中给出通知:

$key = new \Crypt_RSA();
$key->loadKey(file_get_contents([PUBLIC_KEY]));
$ssh = new \Net_SSH2([IP_ADDRESS]], 22);
if(!$ssh->login([USERNAME]], $key)){           
    return false;               
}
$ssh->exec([COMMAND]]);
return true;

错误在函数_subtract中的BigInteger.php中,Net_SSH2使用)。

PHP 通知:未定义的偏移量:/var/www/lib/ShellClient/phpseclib/Math/BigInteger.php 第 1073 行中的 5827

    if ($carry) {
       for (; !$x_value[$i]; ++$i) { //1073
            $x_value[$i] = MATH_BIGINTEGER_MAX_DIGIT;
        }
    --$x_value[$i];
    }

在我的应用程序在 PHP 5.4.34 上运行并通过 NetSSH2 登录之前正常工作,没有任何警告。

【问题讨论】:

    标签: phpseclib


    【解决方案1】:

    这个问题已在 phpseclib 0.3.9 中得到修复。

    【讨论】:

      【解决方案2】:

      我的猜测:您运行的不是最新版本的 phpseclib。最新版本是 0.3.8。您描述的问题听起来像 https://github.com/phpseclib/phpseclib/pull/331,自 0.3.7 起已修复。

      【讨论】:

        猜你喜欢
        • 2017-10-10
        • 2015-05-27
        • 1970-01-01
        • 2018-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        相关资源
        最近更新 更多