java.security.NoSuchAlgorithmException: Algorithm HmacSHA256 not available

这篇具有很好参考价值的文章主要介绍了java.security.NoSuchAlgorithmException: Algorithm HmacSHA256 not available。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java.security.NoSuchAlgorithmException: Algorithm HmacSHA256 not available问题解决

公司使用minio进行文件上传,但是minio底层使用的HmacSHA256 这个算法,我的jar包在本地windows运行是没有任何问题的,放在linux运行就会出现这个错误。

  1. 查看jar包应用是否使用的linux环境的jdk
    添加
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://www.toymoban.com/news/detail-689839.html

到了这里,关于java.security.NoSuchAlgorithmException: Algorithm HmacSHA256 not available的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jmeter通过BeanShell对接口参数进行MD5和HmacSHA256加密【杭州多测师_王sir】

    一、在eclipse里面编写MD5加密算法 二、在eclipse里面自己编写HMACSHA256算法 三、在eclipse里面写好之后,导出来为jar包,命名为:base64.jar  放在jmeter/lib/ext中 1.md5方法就一个参数,就是需要加密的数据 2.sha256_HMAC方法接收两个参数,message:需要被加密的数据,secret:加密的秘钥

    2024年02月12日
    浏览(40)
  • 关于Secure Hash Algorithm加密算法

    一、概述 SHA(Secure Hash Algorithm)加密算法是一种广泛应用的密码散列函数,由美国国家安全局(NSA)设计,用于保障数据的安全性和完整性。SHA算法经历了多个版本的更新,目前主要应用于各种网络安全和数据加密领域。 SHA在线加密 | 一个覆盖广泛主题工具的高效在线平台

    2024年02月04日
    浏览(42)
  • 深度探索:Secure Hash Algorithm(SHA)全景解析

    title: 深度探索:Secure Hash Algorithm(SHA)全景解析 date: 2024/4/15 18:33:17 updated: 2024/4/15 18:33:17 tags: SHA安全 抗碰撞性 算法版本 实现细节 性能优化 发展历史 应用案例 哈希函数是一种数学函数,它接受任意长度的输入数据(称为“消息”),并生成一个固定长度的输出值(称为“

    2024年04月15日
    浏览(36)
  • java.security.InvalidKeyException: IOException : algid parse error, not a sequence

    问题: 读取私钥时报错: KeyFactory keyFactory = KeyFactory.getInstance(\\\"RSA\\\"); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec( Base64.decodeBase64(privateKeyPEM) ); 错误原因 : 私钥格式错误,错误的privateKey是通过openssl生成的私钥,默认pkcs1格式(将文件中去掉私钥头-----BEGIN RSA PRIVATE KEY-----和私钥尾

    2023年04月09日
    浏览(35)
  • Putty进行ssh远程错误: Couldn‘t agree a host key algorithm (available: rsa-sha2-512,rsa-sha2-256)

    报错问题: FATAL ERROR: Couldn‘t agree a host key algorithm (available: rsa-sha2-512,rsa-sha2-256) 问题原因: 这是putty版本问题,需要更换能支持:rsa-sha2-512, rsa-sha2-256的客户端。 问题解决: 官方下载地址 :https://www.ssh.com/ssh/putty(网络差) 可以使用这个地址下载 https://www.chiark.greenend.org.

    2024年02月02日
    浏览(55)
  • Git错误解决:如何处理“could not determine hash algorithm“问题

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月03日
    浏览(53)
  • Error: The user of this service-type is not allowed to use a reversible encryption algorithm

    在交换机或者路由器进行AAA认证时,修改用户密码出现以下状况改如何解决“Error: The user of this service-type is not allowed to use a reversible encryption algorithm”。 配置local-user 用户名 password cipher报错.....--此时需要把cipher换成irreversible-cipher。 于是,重新连接交换机修改密码,换个命令

    2024年02月14日
    浏览(53)
  • 【Java】Java中实现 SHA-256加密

    今天对接第三方突然用到这个加密方式了,找了一些资料都没有特别好的,所以研究了一下找了到了两种加密,分享一下。 maven:

    2024年02月07日
    浏览(64)
  • 开发安全之:Cookie Security: Cookie not Sent Over SSL

    Overview 程序创建了 Cookie,但未将 codeSecure/code 标记设置为 codetrue/code。 Details 现今的 Web 浏览器支持每个 cookie 的 Secure 标记。如果设置了该标记,那么浏览器只会通过 HTTPS 发送 cookie。通过未加密的通道发送 cookie 将使其受到网络截取攻击,因此安全标记有助于保护 cookie 值的

    2024年01月18日
    浏览(37)
  • 使用nvm安装node报错,Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get “https://nodej

    在使用nvm安装node时,会遇到安装失败的情况,如下图所示: 打开nvm目录下的setting.tet文件 在文件中添加以下内容: 保存文件并关闭 使用nvm安装node,如 nvm install 版本号 这样,就可以成功安装node了。

    2024年02月19日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包