2015-11-04 34 views
-1

我用PHP來驗證符號的字符串,它是由JAVA,崗位代碼,如:如何在使用openssl_verify()返回false時進行調試?

$result = (bool)openssl_verify($sign_data, $sign, $public_key); 
openssl_free_key($public_key); 
while ($msg = openssl_error_string()) 
     echo $msg . "<br />\n"; 
var_dump($result);die; 

然後我得到了false,我GOOGLE了一整天,但沒有answer.Can你我一些忠告。

PS:var $public_key是RSA的公鑰,我檢查過它,是resource(1183) of type (OpenSSL key)

+1

['openssl_error_string'](https://secure.php.net/manual/en/function.openssl-error-string.php)似乎是一個很好的開始。 –

+0

謝謝,我嘗試'openssl_error_string',它說:'錯誤:04091077:rsa例程:INT_RSA_VERIFY:錯誤的簽名長度' – gangzi

+0

所以你知道sign_data和這個公鑰的符號不匹配。 –

回答

0

首先,你必須保持public_peky.pem被right.Then約VAR $sign_data,認爲AOUT做urldecode()一次,甚至twice.About VAR $sign,它總是需要做base64_decode()

相關問題