公司让对接个第三方的支付接口,接口采用的RSA算法来加密验签,给出的PHP语言的SDK中采用的openssl扩展的相关函数。之前遇到此类采用RSA加密算法来进行数据加密,一般都是给对方的.pem文件,但该支付接口后台让我们把生成的公钥文件中的加密字符掐头去尾并且去掉换行然后复制粘贴至其商家后台,即为其上传交易公钥

openssl 签名原理(PHP使用OpenSSLRSA加密算法验签问题)(1)

openssl 签名原理(PHP使用OpenSSLRSA加密算法验签问题)(2)

于是悲剧由此诞生了!

此处的错误一般对外给出的都是服务器级别的500错误,解决思路如下:

-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Z/CcE4uKYDFRj au 3u

tLfR1VofXLdlPFss ZmUBJnVc3IobwPM3E7gXCnJW3b2liIG0lUU7BKt0LkvrPM1

sFvSL4giL8nLl4bPIrvZRiIjrh20VqYsjHhVfhyf4V9n7ctA1xT4SrTBMTvP/ 3s

eaXDKlcT2MdbFAQ4FhO0vfWtfREo OtSn6zcQ0bMsknnLoB0xIlOEm5gtdiz36LB

rG2FvFQ5yFEy48QsH mLPdSFqeG/MESZbD68AU6CShbFgknJlxFTA7ttmeXrDak1

CzVrMNUN4gQAyV2J8Jn675 2wS/eVM6MJux886N8LFx/wZrVmK3tZp7IbFFlBONa

1QIDAQAB

-----END PUBLIC KEY-----

,