Package cn.gmkit.integration
Class SM2Sm4Hybrid
java.lang.Object
cn.gmkit.integration.SM2Sm4Hybrid
面向后端场景的 SM2 + SM4 混合加密入口。
该类型负责统一封装一次性 SM4 会话密钥生成、SM2 会话密钥保护以及业务密文与元数据的打包逻辑, 适合用接收方 SM2 公钥保护较大业务数据。返回值是 Java 值对象;跨服务传输或持久化时, 调用方仍需定义带版本的字段编码和密钥标识,不能把该对象当作稳定的线协议。
默认情况下使用 SM4-GCM + 随机 nonce + 16 字节 tag,
也可以显式传入 SM4Options 覆盖模式、IV、AAD 和 tag 长度等参数。
-
Constructor Summary
ConstructorsConstructorDescription创建一个使用默认安全上下文的混合加密入口。SM2Sm4Hybrid(GmSecurityContext securityContext) 创建一个绑定指定安全上下文的混合加密入口。 -
Method Summary
Modifier and TypeMethodDescriptionbyte[]decrypt(String privateKeyHex, SM2Sm4HybridPayload payload) 解密混合加密载荷并返回原文字节数组。decryptToString(String privateKeyHex, SM2Sm4HybridPayload payload, Charset charset) 解密混合加密载荷并按指定字符集返回明文。decryptToUtf8(String privateKeyHex, SM2Sm4HybridPayload payload) 解密混合加密载荷并按 UTF-8 返回明文。使用默认混合加密配置加密字节数组。encrypt(String publicKeyHex, byte[] plaintext, SM4Options options) 使用指定 SM4 选项加密字节数组。使用默认混合加密配置加密 UTF-8 文本。encrypt(String publicKeyHex, String plaintext, Charset charset, SM4Options options) 使用指定字符集与 SM4 选项加密文本。
-
Constructor Details
-
SM2Sm4Hybrid
public SM2Sm4Hybrid()创建一个使用默认安全上下文的混合加密入口。 -
SM2Sm4Hybrid
创建一个绑定指定安全上下文的混合加密入口。- Parameters:
securityContext- Provider 和随机源配置;传入null时回退为默认安全上下文
-
-
Method Details
-
encrypt
使用默认混合加密配置加密字节数组。- Parameters:
publicKeyHex- SM2 公钥十六进制字符串plaintext- 原文字节数组- Returns:
- 混合加密载荷
-
encrypt
使用默认混合加密配置加密 UTF-8 文本。- Parameters:
publicKeyHex- SM2 公钥十六进制字符串plaintext- 原文字符串- Returns:
- 混合加密载荷
-
encrypt
public SM2Sm4HybridPayload encrypt(String publicKeyHex, String plaintext, Charset charset, SM4Options options) 使用指定字符集与 SM4 选项加密文本。- Parameters:
publicKeyHex- SM2 公钥十六进制字符串plaintext- 原文字符串charset- 字符集;传入null时默认使用 UTF-8options- SM4 配置;传入null时使用默认的 GCM 配置- Returns:
- 混合加密载荷
-
encrypt
使用指定 SM4 选项加密字节数组。- Parameters:
publicKeyHex- SM2 公钥十六进制字符串plaintext- 原文字节数组options- SM4 配置;传入null时使用默认的 GCM 配置- Returns:
- 混合加密载荷
-
decrypt
解密混合加密载荷并返回原文字节数组。- Parameters:
privateKeyHex- SM2 私钥十六进制字符串payload- 混合加密载荷- Returns:
- 原文字节数组
-
decryptToUtf8
解密混合加密载荷并按 UTF-8 返回明文。- Parameters:
privateKeyHex- SM2 私钥十六进制字符串payload- 混合加密载荷- Returns:
- UTF-8 明文
-
decryptToString
解密混合加密载荷并按指定字符集返回明文。- Parameters:
privateKeyHex- SM2 私钥十六进制字符串payload- 混合加密载荷charset- 字符集;传入null时默认使用 UTF-8- Returns:
- 指定字符集解码后的明文
-