H5参数加密(暂未支持)

5.1~5.3节介绍的H5接入方式都会将参数以query string的形式拼接在URL上,对于安全要求比较高的接入方,可能会不允许明文传递参数。对参数有加密需求的接入方可以采用本文档中描述的方式对参数进行加密,5.1~5.3节介绍的三种H5接入方式都支持参数加密。

一.URL参数加密方式

H5参数加密需要执行以下步骤:

  1. 参考5.1~5.3节的内容生成H5页面的URL。
  2. 将生成的URL中的query string部分(问号?之后的部分)进行AES加密,得到参数密文。
  3. 将参数密文作为encrypt_params参数的值,再加上公共参数client_id和timestamp,加签后得到sign参数值。签名方式参见 1.3 签名认证
  4. 按照5.1~5.3节中描述的方式将第3步的四个参数(encrypt_params, client_id, timestamp, sign)拼接上对应的H5页面地址,生成最终的访问URL。

最后生成的H5页面URL类似于: https://sandbox-mobile.caocaokeji.cn/enterprise-travel/home?client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&encrypt_params=U2FsdGVkX1/MdYMj7AnpxaMMPVHtSHXD75LlH1UDe3M4PdXBQC1gipNee5IPqzJzDiCIlSuZGXAx2sW53Yy1p+BRlP5ZGs/VqizVdO4vuAmjX3MgS/4o6ovoFPOaRkVo&sign=1f2c544fc0d65fbd9c0e7e22ae72dd1c89ba46f4&timestamp=1535003260000

二.密钥管理方式

加密采用AES对称加密,加密密钥取签名用的sign_key前16位。 sign_key获取方法参见 1.3 签名认证

三. 请求参数

参数名 是否必填 说明
client_id Y 开放平台管理中心创建应用获取
timestamp Y 时间戳(毫秒)
sign Y 签名
encrypt_params Y 加密后的参数