使用openssl_verify()使用公共RSA 1024 Openssl密钥验证数据?

时间:2011-01-11 12:03:13

标签: php openssl

我有private_key.pem和public_key.pem。公众签字由银行签字。 为了验证银行发送给我的数据我使用php方法openssl_verify()

到目前为止,我没有运气来验证数据与公钥有关。 我总是得到这两个错误:

  

错误:0407006A:RSA   套路:RSA_padding_check_PKCS1_type_1:块   type不是01

     

错误:04067072:RSA   套路:RSA_EAY_PUBLIC_DECRYPT:填充   检查失败

我也尝试用shell_exec()方法验证它,但我得到了同样的错误。

任何人都看过这个并且可能知道如何正确验证它?

1 个答案:

答案 0 :(得分:2)

可能正在使用OAEP填充。它符合PKCS#1(在PKCS#1 v2.0 +中定义的OAEP),但它与PKCS#1 v1.5定义的唯一填充方案不同。

无论如何,我的建议是尝试用phpseclib, a pure PHP RSA implementation解密它。该软件包的维护者 - 与OpenSSL PHP扩展的维护者不同 - 积极支持他的产品。