From e996885e683f764b134ce66aaa22fe8d43688719 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 25 Dec 2025 23:26:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20`SecureUtil.hmacSha1`?= =?UTF-8?q?=E5=92=8C`hmacSha256`=E7=94=9F=E6=88=90=E9=9A=8F=E6=9C=BA?= =?UTF-8?q?=E5=AF=86=E9=92=A5=E6=97=B6=E5=AD=98=E5=9C=A8=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=88pr#4199@Github=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 15 +++++++------ .../java/cn/hutool/crypto/SecureUtilTest.java | 22 +++---------------- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce8ccc6ef0..3b8bc216a0 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,14 +12,15 @@ * 【core 】 增强`BitSetBloomFilter`构造器的参数有效性校验逻辑(pr#4194@Github) ### 🐞Bug修复 -* 【core 】 修复`Calculator.conversion`方法计算包含科学计数法表达式的值时逻辑有误,结果不符合预期(pr#4172@Github) -* 【core 】 修复`NumberUtil.getBinaryStr`方法计算Double等丢失小数问题(pr#1411@Gitee) -* 【core 】 修复`MathUtil.multiple`方法在大整数乘法运算中整数溢出风险(pr#4174@Github) -* 【core 】 修复`CharSequenceUtil.move`方法在局部循环位移中输出不符合预期问题(issue#IDD181@Gitee) +* 【core 】 修复`Calculator.conversion`方法计算包含科学计数法表达式的值时逻辑有误,结果不符合预期(pr#4172@Github) +* 【core 】 修复`NumberUtil.getBinaryStr`方法计算Double等丢失小数问题(pr#1411@Gitee) +* 【core 】 修复`MathUtil.multiple`方法在大整数乘法运算中整数溢出风险(pr#4174@Github) +* 【core 】 修复`CharSequenceUtil.move`方法在局部循环位移中输出不符合预期问题(issue#IDD181@Gitee) * 【bloomFilter】 修复`AbstractFilter`的`init`方法在`maxValue`小于`machineNum`时导致数组越界异常(pr#4189@Github) -* 【ai 】 修复`Models`枚举命名大小写混用问题(pr#4185@Github) -* 【core 】 修复 `ThreadUtil.getMainThread`在JDK25中返回null的问题(pr#1416@Gitee) -* 【core 】 修复 `NumberUtil.parseNumber`使用中文逗号导致识别问题(issue#4197@Github) +* 【ai 】 修复`Models`枚举命名大小写混用问题(pr#4185@Github) +* 【core 】 修复 `ThreadUtil.getMainThread`在JDK25中返回null的问题(pr#1416@Gitee) +* 【core 】 修复 `NumberUtil.parseNumber`使用中文逗号导致识别问题(issue#4197@Github) +* 【crypto 】 修复 `SecureUtil.hmacSha1`和`hmacSha256`生成随机密钥时存在逻辑问题(pr#4199@Github) ------------------------------------------------------------------------------------------------------------- # 5.8.42(2025-11-28) diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/SecureUtilTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/SecureUtilTest.java index 3d8d6c7cc7..2ff4b36551 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/SecureUtilTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/SecureUtilTest.java @@ -5,36 +5,20 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.crypto.asymmetric.*; +import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm; +import cn.hutool.crypto.asymmetric.Sign; +import cn.hutool.crypto.asymmetric.SignAlgorithm; import cn.hutool.crypto.digest.*; import cn.hutool.crypto.symmetric.AES; import cn.hutool.crypto.symmetric.DES; -import cn.hutool.crypto.symmetric.DESede; -import cn.hutool.crypto.symmetric.RC4; -import cn.hutool.crypto.symmetric.ZUC; -import cn.hutool.crypto.symmetric.fpe.FPE; -import org.bouncycastle.crypto.AlphabetMapper; -import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.Test; -import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.io.ByteArrayInputStream; import java.io.File; import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.security.KeyPair; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.Provider; -import java.security.PublicKey; -import java.security.Security; -import java.security.Signature; -import java.util.HashMap; -import java.util.Map; import static org.junit.jupiter.api.Assertions.*;