phpseclib不能从终端使用php5 cli

phpseclib不能从终端使用php5 cli,php,debian,rsa,raspbian,phpseclib,Php,Debian,Rsa,Raspbian,Phpseclib,我在我的raspbian(debian OS)上安装了php5 cli包,并在/cli/目录下下载。 我创建了一个测试文件,用公钥加密文本(在我的apache服务器中生成,我在该服务器上有相同的库): include('libs/Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey($myPublicKey); $encrypted = $rsa->encrypt("my text"); echo "resu

我在我的raspbian(debian OS)上安装了php5 cli包,并在/cli/目录下下载。 我创建了一个测试文件,用公钥加密文本(在我的apache服务器中生成,我在该服务器上有相同的库): include('libs/Crypt/RSA.php'); $rsa = new Crypt_RSA(); $rsa->loadKey($myPublicKey); $encrypted = $rsa->encrypt("my text"); echo "result: " .$encrypted; 包括('libs/Crypt/RSA.php'); $rsa=新的Crypt_rsa(); $rsa->loadKey($myPublicKey); $encrypted=$rsa->encrypt(“我的文本”); echo“结果:.”已加密;

如果我尝试键入php test.php,
result
变量为空。为什么?这是因为我使用php5 cli而不是php5从终端e执行文件? 如何获得此加密操作的结果?
谢谢。

您提供的源代码是正确的。如果
$encrypted
的值为空,可能是由于
loadKey
中提供的密钥不正确

根据文件
RSA.php
中的注释,如果密钥无效,则命令将返回
false

/**
 * Loads a public or private key
 *
 * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed)
 *
 * @access public
 * @param String $key
 * @param Integer $type optional
 */
function loadKey($key, $type = false){
    ... 
}
  • 确保
    error\u reporting
    处于启用状态,并且音量足够大
  • 尝试
    var\u dump($encrypted)
    而不是回显。PHPseclib的文档有点缺乏,它没有详细说明Crypt_RSA::encrypt()函数在失败时的行为。它可能返回
    false
    NULL
    ,或者一个空字符串,
    echo
    不会告诉您是哪个

  • 感谢@JanC和@Sammitch!这是一把不正确的钥匙。现在一切都好了