java.security.NoSuchAlgorithmException:PBEWithMD5AndDES SecretKeyFactory not available

Linux跑jar包发生报错,提示如下: 

Invocation of init method failed;
nested exception is org.jasypt.exceptions.EncryptionInitializationException:
java.security.NoSuchAlgorithmException:PBEWithMD5AndDES SecretKeyFactory not available

从提示内容看到是某些加密算法没找到

 

测试一下

Set<String> ciphers = Security.getAlgorithms("Cipher");
for (String cipher : ciphers) {
    System.out.println(cipher);
}

 

Windows + IDE环境下跑程序,控制台输出

PBEWITHHMACSHA384ANDAES_128
AES_256/GCM/NOPADDING
AES_192/GCM/NOPADDING
PBEWITHHMACSHA512ANDAES_128
AES_256/CBC/NOPADDING
AES_256/ECB/NOPADDING
PBEWITHHMACSHA224ANDAES_256
AES_128/CBC/NOPADDING
AESWRAP_192
AESWRAP
PBEWITHMD5ANDDES
AES_192/CBC/NOPADDING
PBEWITHHMACSHA256ANDAES_256
PBEWITHHMACSHA1ANDAES_128
PBEWITHSHA1ANDRC4_128
AES_192/OFB/NOPADDING
AES_128/ECB/NOPADDING
DESEDEWRAP
AESWRAP_256
RC2
PBEWITHSHA1ANDRC4_40
RSA
AESWRAP_128
PBEWITHHMACSHA512ANDAES_256
AES_192/CFB/NOPADDING
DESEDE
AES_128/CFB/NOPADDING
AES_192/ECB/NOPADDING
BLOWFISH
ARCFOUR
AES_256/CFB/NOPADDING
AES
RSA/ECB/PKCS1PADDING
AES_128/OFB/NOPADDING
AES_128/GCM/NOPADDING
DES
PBEWITHHMACSHA256ANDAES_128
PBEWITHSHA1ANDDESEDE
PBEWITHSHA1ANDRC2_40
PBEWITHHMACSHA384ANDAES_256
AES_256/OFB/NOPADDING
PBEWITHSHA1ANDRC2_128
PBEWITHMD5ANDTRIPLEDES
PBEWITHHMACSHA1ANDAES_256
PBEWITHHMACSHA224ANDAES_128

 

Linux环境下跑jar包,结果什么也没有输出

 

经排查 SecretKeyFactory 的类定义在 jre/lib/jce.jar内,推断是JDK版本不同导致

比对Windows版JDK 和 Linux版JDK,发现Linux版比Windows版 缺少某些包,进一步定位到 jre/lib/ext/sunjce_provider.jar

 

解决方案:

步骤1:将 Windows 中的sunjce_provider.jar 拷贝到 Linux JDK相应位置

步骤2:环境变量 CLASSPATH 追加 jre/lib/ext/sunjce_provider.jar

CLASSPATH = .:/usr/local/java/jdk1.8.0_251/jre/lib/ext/sunjce_provider.jar

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值