• java.security.NoSuchAlgorithmException: Cannot find any provider supporting DESede/CBC/PKCS5Padding


    最近在做3DES加密,在本地window下面运行ok的程序,放到linux环境上竟然报错:

    Java.security.NoSuchAlgorithmException: Cannot find any provider supporting DESede/CBC/PKCS5Padding
            at javax.crypto.Cipher.getInstance(Cipher.java:524)
            at com.haha.encrypt.ThreeDES.encryptMode(ThreeDES.java:30)
            at com.haha.encrypt.ThreeDES.encryptString(ThreeDES.java:101)
            at com.haha.mina.MinaServerHandler.sessionIdle(MinaServerHandler.java:91)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.sessionIdle(DefaultIoFilterChain.java:665)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionIdle(DefaultIoFilterChain.java:398)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1000(DefaultIoFilterChain.java:47)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionIdle(DefaultIoFilterChain.java:755)
            at org.apache.mina.core.filterchain.IoFilterAdapter.sessionIdle(IoFilterAdapter.java:95)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionIdle(DefaultIoFilterChain.java:398)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1000(DefaultIoFilterChain.java:47)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionIdle(DefaultIoFilterChain.java:755)
            at org.apache.mina.core.filterchain.IoFilterAdapter.sessionIdle(IoFilterAdapter.java:95)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionIdle(DefaultIoFilterChain.java:398)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionIdle(DefaultIoFilterChain.java:391)
            at org.apache.mina.core.session.AbstractIoSession.notifyIdleSession0(AbstractIoSession.java:1303)
            at org.apache.mina.core.session.AbstractIoSession.notifyIdleSession(AbstractIoSession.java:1289)
            at org.apache.mina.core.session.AbstractIoSession.notifyIdleness(AbstractIoSession.java:1274)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.notifyIdleSessions(AbstractPollingIoProcessor.java:760)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$900(AbstractPollingIoProcessor.java:67)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1135)
            at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:744)

    对比了下Security.getProviders()

    window下:

    INFO  2014-04-30 10:32:12   ServerStarter:67 - 0[SUN]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 1[SunRsaSign]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 2[SunEC]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 3[SunJSSE]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 4[SunJCE]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 5[SunJGSS]
    INFO  2014-04-30 10:32:12  ServerStarter:67 - 6[SunSASL]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 7[XMLDSig]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 8[SunPCSC]
    INFO  2014-04-30 10:32:12   ServerStarter:67 - 9[SunMSCAPI]

    linux下:

    INFO  2014-04-30 10:33:55   ServerStarter:66 - 0[SUN]
    INFO  2014-04-30 10:33:55   ServerStarter:66 - 1[SunRsaSign]
    INFO  2014-04-30 10:33:55   ServerStarter:66 - 2[SunJSSE]
    INFO  2014-04-30 10:33:55   ServerStarter:66 - 3[SunJGSS]
    INFO  2014-04-30 10:33:55   ServerStarter:66 - 4[SunSASL]
    INFO  2014-04-30 10:33:55   ServerStarter:66 - 5[XMLDSig]
    INFO  2014-04-30 10:33:56   ServerStarter:66 - 6[SunPCSC]

    怀疑是缺少SunJCE造成的,但是在linux的JAVA_HOME/jre/lib/ext目录下,有sunjce_provider.jar包,所以很奇怪。

    百思不得其姐,最后在一篇文章里,找到一句话,“找到一个 sunjce_provider.jar 的文件扔到你类路径里”,结果,ok了。。。。

  • 相关阅读:
    EF Core使用笔记(基于MySql数据库)
    开发环境---->服务器(数据库迁移Migration)
    正向代理和反向代理
    Linux基础命令
    Git + Docker + Jenkins自动化部署web到Linux(Centos)
    poj3320(尺取法)
    poj3061(尺取法)
    51nod 1092(lcs)回文字符串
    51nod1268(基础dfs)
    51nod-1459-迷宫游戏
  • 原文地址:https://www.cnblogs.com/tv151579/p/6495330.html
Copyright © 2020-2023  润新知