我有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()方法验证它,但我得到了同样的错误。
任何人都看过这个并且可能知道如何正确验证它?
答案 0 :(得分:2)
可能正在使用OAEP填充。它符合PKCS#1(在PKCS#1 v2.0 +中定义的OAEP),但它与PKCS#1 v1.5定义的唯一填充方案不同。
无论如何,我的建议是尝试用phpseclib, a pure PHP RSA implementation解密它。该软件包的维护者 - 与OpenSSL PHP扩展的维护者不同 - 积极支持他的产品。