Package cn.gmkit.sm3

Class SM3Util

java.lang.Object
cn.gmkit.sm3.SM3Util

public final class SM3Util extends Object
SM3 静态工具入口。

适合直接按工具类方式计算摘要或 HMAC,例如在工具方法、表达式链或历史代码中快速接入。

本类与 SM3 的对象式接口在能力上完全一致,仅调用形式不同。

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    SM3 摘要长度,单位为字节。
  • Method Summary

    Modifier and Type
    Method
    Description
    static byte[]
    digest(byte[] data)
    计算字节数组的 SM3 摘要。
    static byte[]
    digest(String data)
    计算 UTF-8 字符串的 SM3 摘要。
    static byte[]
    digest(String data, Charset charset)
    使用指定字符集计算字符串的 SM3 摘要。
    static String
    digestBase64(byte[] data)
    计算字节数组的 SM3 摘要并输出 Base64 字符串。
    static String
    计算 UTF-8 字符串的 SM3 摘要并输出 Base64 字符串。
    static String
    digestBase64(String data, Charset charset)
    使用指定字符集计算字符串的 SM3 摘要并输出 Base64 字符串。
    static String
    digestHex(byte[] data)
    计算字节数组的 SM3 摘要并输出十六进制字符串。
    static String
    计算 UTF-8 字符串的 SM3 摘要并输出十六进制字符串。
    static String
    digestHex(String data, Charset charset)
    使用指定字符集计算字符串的 SM3 摘要并输出十六进制字符串。
    static byte[]
    hmac(byte[] key, byte[] data)
    计算 HMAC-SM3。
    static byte[]
    hmac(byte[] key, String data)
    计算 UTF-8 字符串的 HMAC-SM3。
    static byte[]
    hmac(byte[] key, String data, Charset charset)
    使用指定字符集计算字符串的 HMAC-SM3。
    static String
    hmacBase64(byte[] key, byte[] data)
    计算 HMAC-SM3 并输出 Base64 字符串。
    static String
    hmacBase64(byte[] key, String data)
    计算 UTF-8 字符串的 HMAC-SM3 并输出 Base64 字符串。
    static String
    hmacBase64(byte[] key, String data, Charset charset)
    使用指定字符集计算字符串的 HMAC-SM3 并输出 Base64 字符串。
    static String
    hmacHex(byte[] key, byte[] data)
    计算 HMAC-SM3 并输出十六进制字符串。
    static String
    hmacHex(byte[] key, String data)
    计算 UTF-8 字符串的 HMAC-SM3 并输出十六进制字符串。
    static String
    hmacHex(byte[] key, String data, Charset charset)
    使用指定字符集计算字符串的 HMAC-SM3 并输出十六进制字符串。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DIGEST_LENGTH

      public static final int DIGEST_LENGTH
      SM3 摘要长度,单位为字节。
      See Also:
  • Method Details

    • digest

      public static byte[] digest(byte[] data)
      计算字节数组的 SM3 摘要。
      Parameters:
      data - 输入数据,不能为 null
      Returns:
      32 字节摘要
    • digest

      public static byte[] digest(String data)
      计算 UTF-8 字符串的 SM3 摘要。
      Parameters:
      data - 输入字符串
      Returns:
      32 字节摘要
    • digest

      public static byte[] digest(String data, Charset charset)
      使用指定字符集计算字符串的 SM3 摘要。
      Parameters:
      data - 输入字符串
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      32 字节摘要
    • digestHex

      public static String digestHex(byte[] data)
      计算字节数组的 SM3 摘要并输出十六进制字符串。
      Parameters:
      data - 输入字节数组
      Returns:
      十六进制摘要
    • digestHex

      public static String digestHex(String data)
      计算 UTF-8 字符串的 SM3 摘要并输出十六进制字符串。
      Parameters:
      data - 输入字符串
      Returns:
      十六进制摘要
    • digestHex

      public static String digestHex(String data, Charset charset)
      使用指定字符集计算字符串的 SM3 摘要并输出十六进制字符串。
      Parameters:
      data - 输入字符串
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      十六进制摘要
    • digestBase64

      public static String digestBase64(byte[] data)
      计算字节数组的 SM3 摘要并输出 Base64 字符串。
      Parameters:
      data - 输入字节数组
      Returns:
      Base64 摘要
    • digestBase64

      public static String digestBase64(String data)
      计算 UTF-8 字符串的 SM3 摘要并输出 Base64 字符串。
      Parameters:
      data - 输入字符串
      Returns:
      Base64 摘要
    • digestBase64

      public static String digestBase64(String data, Charset charset)
      使用指定字符集计算字符串的 SM3 摘要并输出 Base64 字符串。
      Parameters:
      data - 输入字符串
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      Base64 摘要
    • hmac

      public static byte[] hmac(byte[] key, byte[] data)
      计算 HMAC-SM3。
      Parameters:
      key - HMAC 密钥
      data - 输入字节数组
      Returns:
      32 字节 HMAC 结果
    • hmac

      public static byte[] hmac(byte[] key, String data)
      计算 UTF-8 字符串的 HMAC-SM3。
      Parameters:
      key - HMAC 密钥
      data - 输入字符串
      Returns:
      32 字节 HMAC 结果
    • hmac

      public static byte[] hmac(byte[] key, String data, Charset charset)
      使用指定字符集计算字符串的 HMAC-SM3。
      Parameters:
      key - HMAC 密钥
      data - 输入字符串
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      32 字节 HMAC 结果
    • hmacHex

      public static String hmacHex(byte[] key, byte[] data)
      计算 HMAC-SM3 并输出十六进制字符串。
      Parameters:
      key - HMAC 密钥
      data - 输入字节数组
      Returns:
      十六进制 HMAC
    • hmacHex

      public static String hmacHex(byte[] key, String data)
      计算 UTF-8 字符串的 HMAC-SM3 并输出十六进制字符串。
      Parameters:
      key - HMAC 密钥
      data - 输入字符串
      Returns:
      十六进制 HMAC
    • hmacHex

      public static String hmacHex(byte[] key, String data, Charset charset)
      使用指定字符集计算字符串的 HMAC-SM3 并输出十六进制字符串。
      Parameters:
      key - HMAC 密钥
      data - 输入字符串
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      十六进制 HMAC
    • hmacBase64

      public static String hmacBase64(byte[] key, byte[] data)
      计算 HMAC-SM3 并输出 Base64 字符串。
      Parameters:
      key - HMAC 密钥
      data - 输入字节数组
      Returns:
      Base64 HMAC
    • hmacBase64

      public static String hmacBase64(byte[] key, String data)
      计算 UTF-8 字符串的 HMAC-SM3 并输出 Base64 字符串。
      Parameters:
      key - HMAC 密钥
      data - 输入字符串
      Returns:
      Base64 HMAC
    • hmacBase64

      public static String hmacBase64(byte[] key, String data, Charset charset)
      使用指定字符集计算字符串的 HMAC-SM3 并输出 Base64 字符串。
      Parameters:
      key - HMAC 密钥
      data - 输入字符串
      charset - 字符集;传入 null 时默认使用 UTF-8
      Returns:
      Base64 HMAC