数据加密说明

数据接口交互过程中,不可避免会有一些敏感数据的传输。为了使数据交互更加安全,开放平台提供数据加密机制,开发者可根据具体业务接口情况选择该接口是否进行加密。

上行数据:即开发者调用接口时提交至开放平台的数据,提供了可选的加密方案。开发者可根据实际情况选择该业务接口是否加密。
下行数据:即开发者调用接口后返回的数据,如果上行数据进行了加密,下行数据亦会返回加密的数据。
加密算法:目前开放平台支持AES系列加密算法,默认使用AES128位加密,开发者可根据实际情况选择使用更高位数的加密算法,如AES192、AES256。
填充算法:加密的填充算法使用 SHA1PRNG

上行数据请求参数使用以下格式

  1. {
  2. "isEncrypt":"true",
  3. "secStr":"1B36QN8hkIWXK76BsgtCxTI+0MaQOvrSRsgJrvZPOvvBJ6eE/hul07NmLwk+/M5kMs8+9ZC+qyGo5q1clsgLvRd348oR8+Dz8kgFoQpTvSGpG+8Ii1uFjiVa1w6mypJD/5P+fBEh6VX4Kp/wET69iM3yWblJEzz9vPea+jfTBaDo1/z5QlGJU9lZ2X8FzC71BD8vcVOnC2Ke2fRRZ0kmjQClyjCm5TPXT5gSZ4jI85c="
  4. }
字段 说明
secStr 加密后经过base64编码的业务接口请求参数
isEncrypt true表示数据是被加密过的

当数据加密开启之后,且请求参数使用了加密格式,调用的业务接口成功后返回以下格式数据

  1. {
  2. "isEncrypt":"true",
  3. "data":"1B36QN8hkIWXK76BsgtCxTI+0MaQOvrSRsgJrvZPOvvBJ6eE/hul07NmLwk+/M5kMs8+9ZC+qyGo5q1clsgLvRd348oR8+Dz8kgFoQpTvSGpG+8Ii1uFjiVa1w6mypJD/5P+fBEh6VX4Kp/wET69iM3yWblJEzz9vPea+jfTBaDo1/z5QlGJU9lZ2X8FzC71BD8vcVOnC2Ke2fRRZ0kmjQClyjCm5TPXT5gSZ4jI85c="
  4. }
字段 说明
data 加密后经过base64编码的业务接口返回数据
isEncrypt true表示数据是被加密过的

java环境中,默认JCE策略文件限制了AES加密算法最高位数为128,如需使用更高位数加密算法则需要替换对应的JCE策略文件。

各个JDK版本对于的JCE下载地址
JDK8 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

JDK7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK6 http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

文档更新时间: 2022-06-21 10:48