您的位置:首页 > 编程语言 > Java开发

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

2014-04-30 10:28 627 查看
最近在做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了。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐