目录

  • 一、加密
  • 二、什么是公钥、 私钥、 加密、 签名和验签?
  • 三、支付宝官方demo测试
  • 四、支付宝支付流程
  • 五、内网穿透


一、加密

对称加密

加密与解密用的秘钥都是一样的

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_支付宝

非对称加密

加密与解密用到的秘钥不一致

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_安全_02

支付宝加密原理

支付宝加密采用RSA非对称加密,分别在商户端和支付宝端有两对公钥和私钥。在发送订单数据时,直接使用明文,但会使用商户私钥加一个对应的签名,支付宝端会使用商户公钥对签名进行验签,只有数据明文和签名对应的时候才能说明传输正确。

支付成功后,支付宝发送支付成功数据之外,还会使用支付宝私钥加一个对应的签名,商户端收到支付成功数据之后也会使用支付宝公钥延签,成功后才能确认。

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_数据_03

二、什么是公钥、 私钥、 加密、 签名和验签?

公钥私钥

公钥和私钥是一个相对概念。它们的公私性是相对于生成者来说的。一对密钥生成后, 保存在生成者手里的就是私钥,生成者发布出去大家用的就是公钥。

加密和数字签名

加密是指:

我们使用一对公私钥中的一个密钥来对数据进行加密, 而使用另一个密钥来进行解密的技术。 公钥和私钥都可以用来加密, 也都可以用来解密。 但这个加解密必须是一对密钥之间的互相加解密, 否则不能成功。

加密的目的是:

为了确保数据传输过程中的不可读性, 就是不想让别人看到。

签名:

给我们将要发送的数据, 做上一个唯一签名(类似于指纹) 用来互相验证接收方和发送方的身份; 在验证身份的基础上再验证一下传递的数据是否被篡改过。 因此使用数字签名可以用来达到数据的明文传输。

验签:

支付宝为了验证请求的数据是否商户本人发的, 商户为了验证响应的数据是否支付宝发的

三、支付宝官方demo测试

官方 demo下载地址:https://opendocs.alipay.com/open/54/106682

使用支付宝沙箱环境进行测试:https://open.alipay.com/platform/appDaily.htm?tab=account

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_支付宝_04

自定义秘钥,点击rsa2秘钥后面的设置并启用

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_安全_05

利用秘钥工具生成自己的公钥,私钥,拿到支付宝公钥

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_安全_06

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_安全_07

配置demo中的AlipayConfig

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_支付宝_08

添加依赖:

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_支付宝_09

测试账号密码 https://open.alipay.com/platform/appDaily.htm?tab=account

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_安全_10

四、支付宝支付流程

SHA256withRsa对应支付宝公钥 支付宝公钥是什么意思_https_11

五、内网穿透

为什么使用内网穿透?

支付宝需要回调我们的接口进行异步通知

简介

  • 内网穿透功能可以允许我们使用外网的网址来访问主机;
  • 正常的外网需要访问我们项目的流程是:
  • 买服务器并且有公网固定 IP
  • 买域名映射到服务器的 IP
  • 域名需要进行备案和审核

使用场景

1、 开发测试(微信、 支付宝) 2、 智慧互联 3、 远程控制 4、 私有云

内网穿透的几个常用软件

1、 natapp: https://natapp.cn/ 2、 续断: https://www.zhexi.tech 3、 花生壳: https://www.oray.com/