支付宝加密规则你知道吗 支付宝免密支付怎么取消

zfb支付宝因此支付时系统间交互的每一条数据都会采取加密措施 。这里梳理一下支付宝支付时用到的加密规则 , 请大家参考 。

支付宝加密规则你知道吗 支付宝免密支付怎么取消

文章插图
图片来自 Pexels
【支付宝加密规则你知道吗 支付宝免密支付怎么取消】什么是签名?

支付宝加密规则你知道吗 支付宝免密支付怎么取消

文章插图
在了解签名前 , 先回顾一下支付的交互流程 。如上图所示 , 支付的过程中可以大概分为六个步骤:
用户选择自己的商品提交订单 。商家服务器将商品信息和所需要的金额发给支付宝 , 生成支付宝订单 。支付宝订单返回成功之后生成一个支付页面 , 方便手机支付或者网页支付 。手机调起支付宝 App 进行支付 。输入支付密码发送给支付宝服务器 。支付宝服务器转账成功 , 告知商家服务器某个订单的金额转账成功 。
这 6 个步骤中 , 最为重要的是步骤 2 和步骤 6 。拆解如下:

支付宝加密规则你知道吗 支付宝免密支付怎么取消

文章插图
商家服务器和支付宝服务器交互的过程中传输的信息异常敏感 , 所以 , 在交互时必须防止中间人对于信息的篡改 。例如步骤 2 将商品的金额改为 0 , 支付宝就误认为是转账 0 元 。
数字签名解决了交互时这一安全问题 。它可以验证一条消息或者文档的真实性 。
在支付宝支付的接口中 , 有一个 sign 参数用来填写签名 。这个签名作用是为了防止信息伪造 。通过这种方式可以有效的防止消息在传递过程中被篡改 。
签名实现原理
签名原理
数字签名是一个信息安全的保障 , 它的实现依赖于双方系统的密钥 。
签名过程如下:
计算希望签名的文档的散列 。不论输入文档的长度如何 , 输出长度总是固定的 。比如 , 使用 SHA256 就是 256 位 。
对结果散列和一些额外的元数据进行编码 。比如 , 接收方需要知道你使用的散列算法 , 否则不能处理签名 。
使用私钥加密编码过的数据 , 其结果就是签名 , 可以追加到文档中作为身份验证的依据 。

支付宝加密规则你知道吗 支付宝免密支付怎么取消

文章插图
验证签名(验签):接收方接收文档并使用相同的散列算法独立计算文档散列 。
接着 , 她使用公钥对消息进行解密 , 将散列解码出来 , 再确认使用的散列算法是否正确 , 解密出的散列是否与本地计算的相同 。

支付宝加密规则你知道吗 支付宝免密支付怎么取消

文章插图
非对称加密
支付宝采用 RSA 非对称加密对信息进行签名 。非对称加密是由一个公钥和一个私钥组成 , 一般代码中命名为 public key 和 private key 。
非对称加密的特点是:私钥加密的信息只有公钥才能解密 , 公钥加密的信息只能有私钥才能解密 。
一般会将私钥进行保留 , 开发时一般会放在配置文件中 , 安全级别和数据库账号密码一样 。
公钥会交给其他系统 , 这样系统间交互时中间人不知道密钥的情况下 , 是无法破解交互的信息的 。
发送方只要保证私钥不泄露 , 任何人发送给接收方的信息在签名验证时都无法匹配成功 。
支付宝的实现签名的方式也大致如此 , 支付宝在信息交互的时候两个很重要的名词支付宝公钥和应用公钥 , 这两个秘钥总是让人混淆 。
这是因为支付宝提供了两套 RSA 加密 。一套是用来保证步骤 2 统一下单接口时的信息安全 , 另一套是用来保证步骤 6 回调时的信息安全 。
如下图 , 步骤 2 商户服务器通过红色应用私钥(priv key 2)计算签名 , 支付宝通过红色应用公钥(pub key 2)进行验签 。
步骤 6 支付宝服务器通过蓝色支付宝私钥(priv key 6)计算签名 , 商家通过蓝色支付宝公钥(pub key 6)验证签名 。

支付宝加密规则你知道吗 支付宝免密支付怎么取消

文章插图
了解了签名计算原理之后 , 再去管理平台设置 App 信息的时候就游刃有余了 , 我以沙箱环境为例子 。

支付宝加密规则你知道吗 支付宝免密支付怎么取消

秒懂生活扩展阅读