微信支付的密钥和证书的使用
微信支付中使用到的密钥和证书(这里只介绍APIv3密钥)
一、密钥和证书有哪些
- 商户API证书(商户公钥),通过商户平台提供的证书工具产生
- 微信平台证书(微信公钥),通过平台证书下载获取
- 商户私钥
- 微信私钥
- APIv3密钥(AES对称加密,商户自己设置的)
这是微信支付如何申请商户API证书和设置密钥的文档(https://kf.qq.com/faq/161222NneAJf161222U7fARv.html),其中APIv3密钥是AES密钥手动设置就可以了,但是我们如何知道商户API证书的申请就是商户的公钥呢?
问题:在文档中,商户API证书的申请是通过微信提供的证书工具生成的,那证书工具做了什么呢?
当我们在证书工具中填写商户id和商户号的时候,其实就是证书工具在我们本地电脑上生成了一堆公钥和私钥,然后在证书工具显示的一段密钥信息,其实就是我们本地生成的公钥的信息,然后我们将公钥信息复制到商户平台的窗口中,点击下一步,其实就是微信拿着我们的公钥去CA申请数字证书,然后将得到数字证书,通过证书工具实例化到我们本地电脑,打开证书存放的地址。可以看到三个文件,第一个和第二个就是不同格式的数字证书,第三个是商户的私钥
以上就是微信支付,是如何使用密钥进行通信的,也是微信支付对RSA加密和AES加密的实际应用。关于API v3证书和密钥的使用的介绍(https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_0.shtml)。
base64、加salt、随机字符串·