申请公众号或者小程序成功后 可以看到自己的APPID
APPID是你的公众号或者小程序等软件应用的id
申请商户号后 需要将APPID和商户号绑定 即:将应用程序和商户号绑定
商户申请商户API证书时,会生成商户私钥,并保存在本地证书文件夹的文件apiclient_key.pem中
商户API证书是指由商户申请的,包含商户的商户号、公司名称、公钥信息的证书。
微信支付API v3使用由 证书授权机构 (Certificate Authority ,简称CA)签发颁发的证书。
商户可自行生成证书请求串,或下载微信支付证书工具生成证书请求串,并将证书请求串提交到商户平台后才能获得商户API证书文件,私钥文件请注意安全保存。
AES加密算法 对称加密算法
加密分组模式:先将明文分组,再分组加密,微信支付就是用的这种模式
RSA加密算法:最著名的非对称机密算法 微信支付用这种
公钥加密私钥解密
给B发送信息 用B的公钥进行加密 B收到后用自己的私钥就可以看到信息
私钥加密公钥解密(身份认证)
很多人都持有B的公钥,所以这种不是用来加密的
B使用自己的私钥对信件进行加密,A只有用B的公钥才能进行解密,A可以确定写信的人就是B
实现信息完整性:
摘要算法也就是常说的散列函数、哈希函数
Z任意长度->hash计算->H固定长度(数据指纹、摘要)
摘要算法:不可逆,只能加密,不能解密
难题友好性:想要破解,只能暴力枚举
发散性:只要对原文进行一点点改动,摘要就会发生剧烈变化
抗碰撞性:原文不同,计算后的摘要也不同
常见的摘要算法:MD5、SHA1、SHA2 前两者没有太强的抗碰撞行
数字签名:B将信件经过摘要算法生成摘要,然后将摘要用自己的私钥进行加密生成签名
B将数字签名附在信件下发给A,A收到信件后,经过摘要算法生成摘要,然后通过
B的公钥对签名进行解密生成摘要,对比两份摘要是否相同
如果一致,就能确定信件是B发的,并且没有被篡改
公钥的信任:黑客可以伪造公钥,怎么判断公钥是真实的?
数字证书:
如果D把自己的公钥给A,并告诉A这是B的公钥(伪造B的公钥),D用自己私钥和A通话,
A用假的公钥进行解密,A会以为自己在和B通话
公钥:Bob的公钥
所有者:Bob
颁发者:CA(证书认证机构,可信度极高)
有效期:证书有效期限
签名哈希算法:指定摘要算法(证书本身的摘要算法)
指纹:证书的摘要,保证证书的完整性(证书的摘要)
签名算法:用于生成签名,确保证书是由CA颁发的
序列号:证书的唯一标识
B将信件、信件的签名、数字证书一起发给A A可以通过对数字证书的摘要和通过CA公钥解密的签名对比
确保自己拿到的是B的公钥,然后验签信件
CA的公钥默认安装在操作系统中