2011-01-10 83 views
0

Possible Duplicate:
PHP rsa get public key from pem filePHP RSA gePublicKey从.PEM文件

试图用下面的代码来验证收到的签名。

$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'; 

得到错误的 致命错误:调用未定义的方法PEAR_Error的::的getpublickey()在C:\ Program Files文件\ XXXX \ rsa.php

+2

请不要发布重复。 http://stackoverflow.com/questions/4648743/php-rsa-get-public-key-from-pem-file – 2011-01-10 17:50:10

回答

0

看起来你只是不有安装梨包Crypt_RSA

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

在Debian系统痛打这通常只是在Windows上做

sudo apt-get install php-pear 

sudo pear i Crypt_RSA 

我不能告诉你的问题,但我相信你可以快速find howto guides on google

我也想,然后功能,您使用需要一个相当新的版本,所以你可能需要升级梨和使用-f开关更新插件

0

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

PEAR的Crypt_RSA不符合PKCS#1标准,这意味着使用它生成的签名或ciphertexst不会与其他语言交互操作,不支持密码私钥,并且多年来尚未积极维护。在phpseclib

更多信息:

http://phpseclib.sourceforge.net/