【发布时间】:2011-01-11 12:03:13
【问题描述】:
我得到了 private_key.pem 和 public_key.pem。公版由银行签字。 为了尝试验证银行发送给我的数据,我使用 php 方法 openssl_verify()
到目前为止,我无法根据他们的公钥验证该数据。 我总是遇到这两个错误:
错误:0407006A:rsa 例程:RSA_padding_check_PKCS1_type_1:块 类型不是 01
错误:04067072:rsa 例程:RSA_EAY_PUBLIC_DECRYPT:填充 检查失败
我也尝试过使用 shell_exec() 方法验证它,但我得到了同样的错误。
任何人都看过这个并且可能知道如何正确验证它?
【问题讨论】:
-
看起来银行使用了不符合 PKCS#1 的填充。尝试使用 openssl_decrypt() 来查看签名中的加密内容,也许他们只是签署了一个哈希,没有 PKCS#1 填充
-
@Nickolay O 我不太确定我应该为 openssl_decrypt() 使用哪种方法。我有 97 种方法可用。