java.security.NoSuchAlGorithmException: Algorithm HMacSHA256 not available问题解决 公司使用miNIO进行文件上传,但是min
公司使用miNIO进行文件上传,但是minio底层使用的HmacSHA256 这个算法,我的jar包在本地windows运行是没有任何问题的,放在linux运行就会出现这个错误。
System.out.println(System.getProperty("java.version"));
输出查看结果,看看应用程序的版本是否和linux的java -version版本一致,如果不一致就要让环境一致了,可以替换linux的jdk版本和本地一致,这个算法在jdk1.8+是默认支持的。
2. 如果一致的情况下,那就可能是jdk少包了,在linux环境添加
HmacSHA256Test.java文件,里面代码如下
import javax.crypto.Mac;import javax.crypto.spec.SecreTKEySpec;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.*;public class HmacSHA256Test { public static void main(String[] args) { try { System.out.println(System.getProperty("java.version")); Key key = new SecretKeySpec("test".getBytes(), "HmacSHA256"); Mac.getInstance("HmacSHA256").init(key); System.out.println("Success!"); } catch (Exception e) { e.printStackTrace(); } } }
使用 javac HmacSHA256Test.java编译文件,在使用java HmacSHA256Test运行查看是否输出success。如果不能输出success,就需要在jre里面添加security包了,具体可以百度,我这里是能输出的。
3.如果输出success,那就可能是jar包的算法指向有问题了,我们可以添加一个Bouncy Castle扩展包,在pom.xml文件加依赖
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.68</version> </dependency>
在SpringBoot启动方法中添加代码进行指定
Security.addProvider(new BouncyCastleProvider());
public static void main(String[] args) { Security.addProvider(new BouncyCastleProvider()); springApplication.run(abs.class, args); }
我到这一步基本就解决问题了
来源地址:https://blog.csdn.net/qq_42900469/article/details/130934009
--结束END--
本文标题: java.security.NoSuchAlgorithmException: Algorithm HmacSHA256 not available
本文链接: https://www.lsjlt.com/news/400027.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0