PHP rsa gePublicKey from.pem文件

PHP rsa gePublicKey from.pem文件,php,rsa,Php,Rsa,可能重复: 尝试使用以下代码验证收到的签名。 $file = "C:\key_file.pem"; $keypair = Crypt_RSA_KeyPair::fromPEMString(file_get_contents($file)); $public_key = $keypair->getPublicKey(); $rsa_pub_key = Crypt_RSA_Key::fromString($public_key->toString()); $rsa_obj =

可能重复:

尝试使用以下代码验证收到的签名。

$file = "C:\key_file.pem";  
$keypair = Crypt_RSA_KeyPair::fromPEMString(file_get_contents($file)); 
$public_key = $keypair->getPublicKey(); 
$rsa_pub_key = Crypt_RSA_Key::fromString($public_key->toString()); 
$rsa_obj = new Crypt_RSA; 
$verify_status =  $rsa_obj->validateSign($text,$recieved_signed_sign, $rsa_pub_key) ? 'valid' : 'invalid';
将错误获取为
致命错误:调用C:\Program Files\xxxx\rsa.php中未定义的方法PEAR\u error::getPublicKey()

看起来您只是没有安装PEAR包

为此,您必须安装php pear,然后使用它安装软件包

在debian basted系统上,这通常只是一个操作问题

sudo apt-get install php-pear

sudo pear i Crypt_RSA
在窗户上,我不能告诉你,但我相信你可以很快


我还认为您使用的then函数需要一个全新的版本,因此您可能需要升级pear并使用-f开关更新插件。我的建议是:不要使用pear的Crypt_RSA,而是使用phpseclib的Crypt_RSA

PEAR的Crypt#u RSA与PKCS#1不兼容,这意味着用它生成的签名或密码将无法与其他语言进行互操作,它不支持密码私钥,并且多年来没有得到有效维护

有关phpseclib的更多信息:

请不要发布重复的内容。