SM2加密说明

算法参数说明

  1. 密钥对生成

  • 使用SM2默认曲线 sm2p256v1

  • SM2推荐曲线参数(来自https://github.com/ZZMarquis/gmhelper)

  • 对私钥进行压缩,公钥不压缩

  1. 加密模式

  • 使用C1C2C3模式

  • 加密结果byte[]转Hex字符串

公钥配置说明

前往新版管理后台配置、查看SM2公钥 sm2_config.png

请求参数加密说明

注:使用保利威SM2公钥加密

请求参数加密开启

请求头携带参数x-e-type:2,值2表示SM2加密

GET加密请求参数规则

暂不支持GET请求参数加密

POST JSON请求参数加密规则

  1. 将body中JSON报文整体使用保利威公钥SM2加密

  2. POST请求body为加密后的密文

POST FORM表单请求参数加密规则

注:签名相关参数appId,timestamp,sign不参与加密

  1. 原始参数生成签名sign

  2. 将签名检验参数appId,sign,timestamp除外的其他业务参数按照JSON格式封装

  1. 将JSON报文使用保利威公钥SM2加密的到密文ABCDEF

  1. 剔除加密前业务参数,表单增加加密字段xparam=ABCDEF

加密参数请求响应说明

  1. 请求参数解密成功时,正常响应接口对应业务码

  2. 请求参数解密失败时,http响应码为400,错误业务码10001

响应报文加密说明

注:用户生成SM2公私钥对(自行保管好私钥),在保利威平台配置的SM2公钥,开启响应加密后,会对响应报文中data字段进行加密

响应参数加密开启

请求参数携带参数encryptResponseType:2,值2表示SM2加密

响应报文加密规则

  1. 未配置密钥或配置错误密钥,响应结果为明文不加密

  2. 只对响应码200,业务成功响应时,JSON中data字段进行加密

  3. 响应码非200,业务失败时,error为明文不加密

  4. 用户使用对应SM2密钥对响应报文进行解密

  5. 加密报文响应示例

SM2加解密算法示例代码

Last updated

Was this helpful?