2011-01-10 116 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/