来自.pem文件的PHP rsa gePublicKey

时间:2011-01-10 17:48:13

标签: php rsa

  

可能重复:
  PHP rsa get public key from pem file

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

$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_Error :: getPublicKey()

2 个答案:

答案 0 :(得分:0)

看起来你还没有安装梨包Crypt_RSA

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

在debian基础系统上,这通常只是做事

sudo apt-get install php-pear

sudo pear i Crypt_RSA
在Windows上我不能告诉你,但我相信你可以很快find howto guides on google

我也认为你使用的功能需要一个相当新的版本,因此你可能需要升级pear并使用-f开关更新插件

答案 1 :(得分:0)

我的建议:不要使用PEAR的Crypt_RSA,而是使用phpseclib的Crypt_RSA。

PEAR的Crypt_RSA不符合PKCS#1,这意味着使用它生成的签名或密文不会与其他语言互操作,它不支持密码私钥,并且多年来一直没有积极维护。 / p>

有关phpseclib的更多信息:

http://phpseclib.sourceforge.net/