微信支付&支付宝支付学习笔记01

一、在线支付实战(微信和支付宝)-介绍

1、微信支付

①、微信支付介绍和接入指引(对微信支付的支付场景、具体的支付产品进行简单的介绍,带大家了解如何准备支付账号以及如何获取开发过程中需要的支付参数)

②、证书/密钥/签名(支付安全相关的内容,微信支付为了保证交易的安全性,学习证书、密钥、签名的工作机制以及工作原理,帮助我们更好的了解支付接入的细节,了解微信支付的安全性是如何保障的)

③、案例项目的创建

SpringBoot+Vue

Java、MyBatis-Plus、MySQL

HTML、JavaScript、Vue

④、基础支付API V3

⑤、基础支付API V2

2、支付宝支付

①、支付宝支付介绍和接入指引

②、运行和配置案例项目

③、支付功能开发

3、课程特点

①、完整的视频、课件、笔记、源码

②、一套教程从基础理论到应用实践,支付小白轻松入门

③、案例专门针对支付业务开发,包含完整的API接入流程

④、基于流行的SpringBoot+Vue架构,可直接接入常见项目

⑤、涵盖微信支付和支付宝支付

⑥、涵盖微信支付API V3和V2,满足更多企业应用场景

二、微信支付-微信支付产品介绍

1、微信支付官方网站:https://pay.weixin.qq.com/

2、支付产品:https://pay.weixin.qq.com/static/product/product_index.shtml

三、微信支付-接入指引-获取商户号

1、接入指引:https://pay.weixin.qq.com/static/applyment_guide/applyment_index.shtml

选择我有PC网站

四、微信支付-接入指引-获取APPID

1、微信公众平台:https://mp.weixin.qq.com/(申请公众号,再将商户号和APPID进行绑定)

五、微信支付-接入指引-获取密钥和证书

在微信支付商户平台-账户中心-账户设置(API安全)

六、微信支付-微信支付介绍和接入指引总结

看pdf文档

①、获取商户号

②、获取APPID

③、获取API密钥

④、获取APIv3密钥

⑤、申请商户API证书

⑥、获取微信平台证书

七、微信支付-支付安全-对称加密和非对称加密

1、机密性是信息安全的基础,实现机密性最常用的手段就是加密了,那只有掌握特殊钥匙的人,才能对加密的文本进行解密,这里的钥匙就叫做密钥,加密前的消息我们叫他明文,加密后的文本我们叫它密文,使用密钥还原明文的过程呢就叫做解密,加密解密的操作过程呢就是加密算法,所有的加密算法呢都是公开的,而算法使用的密钥呢则必须保密,密钥呢其实就是一个字符串,它的度量单位呢是 位bit

2、对称加密其实很好理解,就是指加密和解密的时候呢?使用的密钥是同一个,是对称的,只要保证了密钥的安全性,那整个通信过程就可以说具有了机密性,因为通信过程中传输的全是用密钥加密后的密文,所以只要消息的发送方和接收方才能解密,那恶意的用户即使能够窃听到我们的消息,看到的也只是加密后的密文,因为没有密钥无法解出明文,所以呢就实现了消息发送的机密性。

优点:运算速度快

缺点:密钥需要信息交换的双发共享,一旦被窃取,消息会被破解

3、非对称加密呢它是有两个密钥啊,一个呢叫做公钥public key,另一个叫做私钥private key,两个密钥呢是不同的,所以呢我们叫它非对称,公钥呢可以公开给任何人使用,而私钥呢必须要严格保密的,使用公钥加密后呢,只能使用私钥解密。那反过来呢私钥加密后呢,也只能使用公钥来解密,非对称加密算法的设计呢要比对称加密算法复杂得多,那RSA可能是其中最著名的一个了,几乎可以说是非对称加密的代名词了,微信支付中的非对称加密算法呢使用的就是这种方式。

优点:私钥严格保密,公钥任意分发,黑客获取公钥无法破解密文

缺点:运算速度非常慢

总结概括

如果我们在互联网上传输信息的话,通信速度呢是无法保证的,所以一般情况下,如果要保证信息传输的安全性,一般呢都是对称加密和非对称加密相结合的,例如我们可以用非对称加密的方式先传输对称加密需要的密钥,这样呢可以保证密钥被安全的传递,那后期的信息交换的过程呢就可以安全地使用对称加密进行了,这样既能保证对称加密需要的密钥呢不会在传输的过程当中被拦截、被窃取,又能保证在后续的信息传输的过程当中加密和解密的效率,那么我们知道的https的底层协议呢,其实使用的就是这个原理

八、微信支付-支付安全-身份认证

1、前面我们学习了对称加密和非对称加密实现了信息传输的机密性,但仅有机密性离安全还差得很远

2、私钥加密、公钥解密的作用呢其实就是身份认证

九、微信支付-支付安全-数字签名

如何保证信件不被篡改,即信息的完整性?

实现完整性的手段主要是摘要算法(Digest Algorithm)也就是常说的散列函数、哈希函数(Hash Function),它是一种数据映射关系,为了方便举例,我们假设一个任意长度的字符串数据z经过哈希运算之后呢,会得到固定长度的字符串数据h,那么我们说h就是自己的哈希结果又称作数据指纹或者是摘要。你可能听说MD5,其实MD5呢就是一个非常典型的摘要算法,例如我们这里面有两个字符串a和aaa,那么经过MD5运算之后得到的哈希结果虽然是不同的,但是它们的长度是一样的,所以呢我们说有任意长度的z经过哈希运算之后,可以生成一个固定长度的h

那摘要算法呢需要有以下的四种特性:

1、不可逆:只有算法,没有密钥,只能加密,不能解密(我们把摘要算法和前面我们提到过的AES以及RSA做个比较,AES算法呢属于对称机密的一种,因为它需要一个密钥去加密和解密,而RSA算法呢是非对称加密的典型算法,它需要两把钥匙,公钥和私钥,那在加密和解密的过程当中呢,都需要用到这两把钥匙,因此呢无论是对称加密还是非对称加密,那么我们解密的时候都是需要钥匙的,但是我们现在看到的这个摘要算法,它只有算法,没有密钥,加密后的数据呢是没有办法解密的,不能从摘要逆推出原文,也就是只能把z加密成h,但是呢不能从h解密出z)

2、难题友好性:想要破解,只能暴力枚举

3、发散性:只要对原文进行一点点改动,摘要就会发生剧烈变化

4、抗碰撞性:原文不同,计算后的摘要也要不同

常见摘要算法:MD5、SHA1(不具有强的碰撞性)、SHA2(SHA224、SHA256、SHA384)

加入密钥确保我们信息的机密性,第一个步骤呢,Bob写完信之后呢,先用摘要算法生成信件的摘要,第二个步骤Bob使用自己的私钥将摘要加密,加密后的结果我们称为数字签名,第三个步骤Bob将数字签名附在信的原文下面一起发给Pat。Pat收到信之后呢,也是三个步骤,第一个步骤,Pat取下数字签名,用Bob的公钥解密,得到信件的摘要,第二个步骤Pat使用和Bob一样的摘要算法加密信件的原文得到信件的摘要,那第三个步骤Pat将前面两步得到的摘要进行比对,如果一致,信件就是Bob发的,并且是没有经过篡改的,这个过程我们称为验签(验证签名的意思)

那么通过Bob的签名流程和Pat的验签流程,我们发现,即使黑客修改了信件的原文,即使黑客能够通过摘要算法生成新的摘要,但是因为他没有Bob的私钥,因此呢就无法对摘要进行加密,无法生成只能有Bob才能生成的签名,所以呢这个信也就没有办法被篡改了,那微信支付中的签名和验签的过程呢就是这个原理,那么经过以上的步骤呢,Pat就可以将信件的原文取出来了。那刚刚我们讲的这个流程呢,主要针对数字签名,数字签名可以保证信息传递的过程中不可以被篡改以及信息传递者的身份的认证。

十、微信支付-支付安全-数字证书

首先Dog想要欺骗Pat,他将自己的公钥发送给Pat,并且谎称这是Bob的公钥,此时Pat实际拥有的是Dog的公钥,因此Dog就可以冒充用自己的私钥做成数字签名写信给Pat,那Pat用假的Bob的公钥验签,验签是可以成功的,Pat误以为是在和Bob通信,但其实对方是Dog,那这个场景就相当于你误以为是在和微信支付的服务器在通信,但实际上是在和黑客通信。

公钥的信任:黑客可以伪造公钥,怎么判断公钥是真实的?

你可能感兴趣的:(支付,微信,学习,笔记)