phpseclib不能从终端使用php5 cli
我在我的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,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
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!这是一把不正确的钥匙。现在一切都好了