Body加解密说明#
基于请求内容的安全等级要求不同,请求可选择SM4加密方式进行传输Body,可通过请求头字段“X-Encryption-Mode”设置使用,如下介绍如何使用 Java 工具类,基于 国密 SM4 算法 + GCM 模式,实现安全的加密与解密。该类可作为一个轻量级 SDK 集成到你的项目中。只支持Method:post,Content-Type:application/json的请求Body,响应不加密。
一、功能简介#
✅ 自定义密钥对应于申请授权时的加密密钥(encrypt_key)
✅ 使用 SM4/GCM/NoPadding 模式进行加密和解密
✅ 自动生成安全随机 IV(12 字节,GCM 推荐长度)
✅ 使用 SM3 对字符串密钥进行摘要,派生出 SM4 密钥
✅ 使用 BouncyCastle 作为密码学提供者
二、依赖环境#
1. JDK 版本#
2. Maven 依赖#
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.79</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
3. 代码#