Class SM2Sm4Hybrid

java.lang.Object
cn.gmkit.integration.SM2Sm4Hybrid

public final class SM2Sm4Hybrid extends Object
面向后端场景的 SM2 + SM4 混合加密入口。

该类型负责统一封装一次性 SM4 会话密钥生成、SM2 会话密钥保护以及业务密文与元数据的打包逻辑, 适合用接收方 SM2 公钥保护较大业务数据。返回值是 Java 值对象;跨服务传输或持久化时, 调用方仍需定义带版本的字段编码和密钥标识,不能把该对象当作稳定的线协议。

默认情况下使用 SM4-GCM + 随机 nonce + 16 字节 tag, 也可以显式传入 SM4Options 覆盖模式、IV、AAD 和 tag 长度等参数。

  • Constructor Details

    • SM2Sm4Hybrid

      public SM2Sm4Hybrid()
      创建一个使用默认安全上下文的混合加密入口。
    • SM2Sm4Hybrid

      public SM2Sm4Hybrid(GmSecurityContext securityContext)
      创建一个绑定指定安全上下文的混合加密入口。
      Parameters:
      securityContext - Provider 和随机源配置;传入 null 时回退为默认安全上下文
  • Method Details

    • encrypt

      public SM2Sm4HybridPayload encrypt(String publicKeyHex, byte[] plaintext)
      使用默认混合加密配置加密字节数组。
      Parameters:
      publicKeyHex - SM2 公钥十六进制字符串
      plaintext - 原文字节数组
      Returns:
      混合加密载荷
    • encrypt

      public SM2Sm4HybridPayload encrypt(String publicKeyHex, String plaintext)
      使用默认混合加密配置加密 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-8
      options - SM4 配置;传入 null 时使用默认的 GCM 配置
      Returns:
      混合加密载荷
    • encrypt

      public SM2Sm4HybridPayload encrypt(String publicKeyHex, byte[] plaintext, SM4Options options)
      使用指定 SM4 选项加密字节数组。
      Parameters:
      publicKeyHex - SM2 公钥十六进制字符串
      plaintext - 原文字节数组
      options - SM4 配置;传入 null 时使用默认的 GCM 配置
      Returns:
      混合加密载荷
    • decrypt

      public byte[] decrypt(String privateKeyHex, SM2Sm4HybridPayload payload)
      解密混合加密载荷并返回原文字节数组。
      Parameters:
      privateKeyHex - SM2 私钥十六进制字符串
      payload - 混合加密载荷
      Returns:
      原文字节数组
    • decryptToUtf8

      public String decryptToUtf8(String privateKeyHex, SM2Sm4HybridPayload payload)
      解密混合加密载荷并按 UTF-8 返回明文。
      Parameters:
      privateKeyHex - SM2 私钥十六进制字符串
      payload - 混合加密载荷
      Returns:
      UTF-8 明文
    • decryptToString

      public String decryptToString(String privateKeyHex, SM2Sm4HybridPayload payload, Charset charset)
      解密混合加密载荷并按指定字符集返回明文。
      Parameters:
      privateKeyHex - SM2 私钥十六进制字符串
      payload - 混合加密载荷
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      指定字符集解码后的明文