diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java index 17c0da0f2..f82f7139b 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java @@ -737,6 +737,45 @@ public final class SecureUtil { return new HMac(HmacAlgorithm.HmacSHA1); } + /** + * HmacSHA256加密器
+ * 例:
+ * HmacSHA256加密:hmacSha256(key).digest(data)
+ * HmacSHA256加密并转为16进制字符串:hmacSha256(key).digestHex(data)
+ * + * @param key 加密密钥,如果为{@code null}生成随机密钥 + * @return {@link HMac} + * @since 3.3.0 + */ + public static HMac hmacSha256(String key) { + return hmacSha256(StrUtil.utf8Bytes(key)); + } + + /** + * HmacSHA256加密器
+ * 例:
+ * HmacSHA256加密:hmacSha256(key).digest(data)
+ * HmacSHA256加密并转为16进制字符串:hmacSha256(key).digestHex(data)
+ * + * @param key 加密密钥,如果为{@code null}生成随机密钥 + * @return {@link HMac} + */ + public static HMac hmacSha256(byte[] key) { + return new HMac(HmacAlgorithm.HmacSHA256, key); + } + + /** + * HmacSHA256加密器,生成随机KEY
+ * 例:
+ * HmacSHA256加密:hmacSha256().digest(data)
+ * HmacSHA256加密并转为16进制字符串:hmacSha256().digestHex(data)
+ * + * @return {@link HMac} + */ + public static HMac hmacSha256() { + return new HMac(HmacAlgorithm.HmacSHA256); + } + // ------------------------------------------------------------------- 非称加密算法 /**