Package cn.gmkit.sm3
Class SM3
java.lang.Object
cn.gmkit.sm3.SM3
SM3 对象式入口。
SM3 本身是无状态摘要算法,因此对象式接口主要用于统一整体 API 风格:
可以与 new SM2()、new SM4() 保持一致的使用体验。
如果项目更偏好工具类方式,可使用 SM3Util 的静态方法。
两者的摘要结果、HMAC 结果和参数校验行为保持一致。
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]digest(byte[] data) 计算 SM3 摘要。byte[]计算 UTF-8 字符串的 SM3 摘要。byte[]使用指定字符集计算字符串的 SM3 摘要。digestBase64(byte[] data) 计算 SM3 摘要并输出 Base64 字符串。digestBase64(String data) 计算 UTF-8 字符串的 SM3 摘要并输出 Base64 字符串。digestBase64(String data, Charset charset) 使用指定字符集计算字符串的 SM3 摘要并输出 Base64 字符串。digestHex(byte[] data) 计算 SM3 摘要并输出十六进制字符串。计算 UTF-8 字符串的 SM3 摘要并输出十六进制字符串。使用指定字符集计算字符串的 SM3 摘要并输出十六进制字符串。byte[]hmac(byte[] key, byte[] data) 计算 HMAC-SM3。byte[]计算 UTF-8 字符串的 HMAC-SM3。byte[]使用指定字符集计算字符串的 HMAC-SM3。hmacBase64(byte[] key, byte[] data) 计算 HMAC-SM3 并输出 Base64 字符串。hmacBase64(byte[] key, String data) 计算 UTF-8 字符串的 HMAC-SM3 并输出 Base64 字符串。hmacBase64(byte[] key, String data, Charset charset) 使用指定字符集计算字符串的 HMAC-SM3 并输出 Base64 字符串。hmacHex(byte[] key, byte[] data) 计算 HMAC-SM3 并输出十六进制字符串。计算 UTF-8 字符串的 HMAC-SM3 并输出十六进制字符串。使用指定字符集计算字符串的 HMAC-SM3 并输出十六进制字符串。
-
Field Details
-
DIGEST_LENGTH
public static final int DIGEST_LENGTHSM3 摘要长度,单位为字节。- See Also:
-
-
Constructor Details
-
SM3
public SM3()创建一个无状态的 SM3 实例。
-
-
Method Details
-
digest
public byte[] digest(byte[] data) 计算 SM3 摘要。- Parameters:
data- 输入字节数组- Returns:
- 摘要结果
-
digest
计算 UTF-8 字符串的 SM3 摘要。- Parameters:
data- 输入字符串- Returns:
- 摘要结果
-
digest
使用指定字符集计算字符串的 SM3 摘要。- Parameters:
data- 输入字符串charset- 字符集;传入null时默认使用 UTF-8- Returns:
- 摘要结果
-
digestHex
计算 SM3 摘要并输出十六进制字符串。- Parameters:
data- 输入字节数组- Returns:
- 十六进制摘要
-
digestHex
计算 UTF-8 字符串的 SM3 摘要并输出十六进制字符串。- Parameters:
data- 输入字符串- Returns:
- 十六进制摘要
-
digestHex
使用指定字符集计算字符串的 SM3 摘要并输出十六进制字符串。- Parameters:
data- 输入字符串charset- 字符集;传入null时默认使用 UTF-8- Returns:
- 十六进制摘要
-
digestBase64
计算 SM3 摘要并输出 Base64 字符串。- Parameters:
data- 输入字节数组- Returns:
- Base64 摘要
-
digestBase64
计算 UTF-8 字符串的 SM3 摘要并输出 Base64 字符串。- Parameters:
data- 输入字符串- Returns:
- Base64 摘要
-
digestBase64
使用指定字符集计算字符串的 SM3 摘要并输出 Base64 字符串。- Parameters:
data- 输入字符串charset- 字符集;传入null时默认使用 UTF-8- Returns:
- Base64 摘要
-
hmac
public byte[] hmac(byte[] key, byte[] data) 计算 HMAC-SM3。- Parameters:
key- HMAC 密钥data- 输入字节数组- Returns:
- HMAC 结果
-
hmac
计算 UTF-8 字符串的 HMAC-SM3。- Parameters:
key- HMAC 密钥data- 输入字符串- Returns:
- HMAC 结果
-
hmac
使用指定字符集计算字符串的 HMAC-SM3。- Parameters:
key- HMAC 密钥data- 输入字符串charset- 字符集;传入null时默认使用 UTF-8- Returns:
- HMAC 结果
-
hmacHex
计算 HMAC-SM3 并输出十六进制字符串。- Parameters:
key- HMAC 密钥data- 输入字节数组- Returns:
- 十六进制 HMAC
-
hmacHex
计算 UTF-8 字符串的 HMAC-SM3 并输出十六进制字符串。- Parameters:
key- HMAC 密钥data- 输入字符串- Returns:
- 十六进制 HMAC
-
hmacHex
使用指定字符集计算字符串的 HMAC-SM3 并输出十六进制字符串。- Parameters:
key- HMAC 密钥data- 输入字符串charset- 字符集;传入null时默认使用 UTF-8- Returns:
- 十六进制 HMAC
-
hmacBase64
计算 HMAC-SM3 并输出 Base64 字符串。- Parameters:
key- HMAC 密钥data- 输入字节数组- Returns:
- Base64 HMAC
-
hmacBase64
计算 UTF-8 字符串的 HMAC-SM3 并输出 Base64 字符串。- Parameters:
key- HMAC 密钥data- 输入字符串- Returns:
- Base64 HMAC
-
hmacBase64
使用指定字符集计算字符串的 HMAC-SM3 并输出 Base64 字符串。- Parameters:
key- HMAC 密钥data- 输入字符串charset- 字符集;传入null时默认使用 UTF-8- Returns:
- Base64 HMAC
-