1、方案

      接口数据加解密方案采用"对称加密算法+非对称加密算法"组合方式完成。其中对称加密算法用于数据加解密,非对称加密算法用于加密的密钥。

    

2、流程一

      客户端持有服务端公钥,请求响应的数据对称加密密钥均使用客户端本次请求生成的密钥。

     具体请求响应流程如下图所示:

    

业务接口请求响应数据加解密流程_非对称加密


3、流程二

     客户端和服务器分别持有对方的公钥,请求数据对称加密密钥由客户端生成,响应数据的对称加密密钥由服务端生成。

    具体请求响应流程如下图所示:

    

业务接口请求响应数据加解密流程_HTTP接口加密_02

4、备注

  无论采用流程一还是流程二,需要注意以下几个问题:

  • 客户端和服务器多语言情况下,需要注意各自使用的库,要保证加解密算法一致,编码一致。比如:AES算法的密钥长度,IV值,加密模式,Padding方式等。
  • 加密数据的密钥一定是动态生成,使用前无法提前预知。
  • 保管好私钥,同时要有公私钥对的更新机制。