AES解密出错:No such algorithm: SM4/ECB/PKCS5Padding

博客讲述了在Java中遇到AES解密错误'No such algorithm: SM4/ECB/PKCS5Padding'的问题。作者发现网上的解决方案无效,最终通过下载并引入Bouncy Castle的bcprov-jdk15on-1.xx.jar库成功解决问题。提醒读者如果某个版本不起作用,可以尝试不同版本以找到适用的。
部署运行你感兴趣的模型镜像

报错信息

网上的解决办法是千奇百怪,没一个能用的,只需要下载个jar放到

bcprov-jdk15on-1.xx.jar下载路径:https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on

记得如果这个版本不行你就多选几个试试,肯定有个好使

下载时点击图中表明处

下面就成功了,非常nice

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

SM4 加密报 `NoSuchAlgorithmException: No such algorithm: SM4/ECB/PKCS5Padding` 错误时,通常是因为 Java 运行环境中缺少对 SM4 算法的支持。以下是一些可行的解决方法: ### 添加 Bouncy Castle 库 Bouncy Castle 是一个提供了大量加密算法实现的开源库,可支持 SM4 算法。 1. **Maven 依赖**:在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.70</version> </dependency> ``` 2. **Gradle 依赖**:在 `build.gradle` 文件中添加以下依赖: ```groovy implementation 'org.bouncycastle:bcprov-jdk15on:1.70' ``` 3. **代码中注册 Bouncy Castle 提供者**: ```java import org.bouncycastle.jce.provider.BouncyCastleProvider; import javax.crypto.Cipher; import java.security.Security; public class Sm4Util { static { Security.addProvider(new BouncyCastleProvider()); } public static void main(String[] args) throws Exception { Cipher cipher = Cipher.getInstance("SM4/ECB/PKCS5Padding", "BC"); // 后续加密操作 } } ``` ### 检查 Java 安全提供者配置 可以通过修改 Java 的安全提供者配置文件 `java.security` 来添加 Bouncy Castle 提供者。在 `java.security` 文件中添加以下内容: ```plaintext security.provider.5=org.bouncycastle.jce.provider.BouncyCastleProvider ``` 需要注意的是,`security.provider.5` 中的数字要根据实际情况调整,确保不与已有的提供者序号冲突。 ### 检查代码中 Cipher 实例化 确保在代码中正确实例化 `Cipher` 对象,指定使用 Bouncy Castle 提供者: ```java import javax.crypto.Cipher; import java.security.Security; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class Sm4Util { public static void main(String[] args) throws Exception { Security.addProvider(new BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("SM4/ECB/PKCS5Padding", "BC"); // 后续加密操作 } } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值