kalman03

每天早上看一遍《福布斯》富翁排行榜,如果上面没有我的名字,我就去学习......
随笔 - 22, 文章 - 0, 评论 - 86, 引用 - 0
数据加载中……

java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案

当我们使用DES等加密算法时,如下:

Security.addProvider(new com.sun.crypto.provider.SunJCE());
//获得密钥
Key generateKey = new KeyTools().getKey(key.getBytes());
Cipher encryptCipher 
= Cipher.getInstance("DES");

将用到该算法类对应的工程在Eclipse中发布为web工程,通过Eclipse启动Tomcat服务,可能会遇到这样的异常信息:

java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES

网上的解决方案说什么sunjce_provider.jar路径问题啊,什么需要换成IBM的JDK之类的。。。。。
除了没换JDK,其他的方法都试过,但是没一个起作用的。到底有没有更好的解决方案?

其实很简单,将编译好的工程部署好,直接启动Tomcat而不是通过Eclipse的Tomcat插件启动,那么将不会出现这样的异常信息。

原因剖析:
对Eclipse的jar包,它隐掉了SUN公司关于某些Jar包的签名信息,这样当你在Eclipse中启动服务的话,就可能导致上述的异常。

个人觉得是这样的原因,因为目前为止也没看到有谁有更好的解决方案。

posted on 2010-01-27 19:19 kalman03 阅读(11335) 评论(7)  编辑  收藏 所属分类: IDE

评论

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案  回复  更多评论   


方法可以 !
2010-01-28 14:29 | qvod

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案  回复  更多评论   


解决了!
2010-01-28 14:31 | 爱.伦理

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案[未登录]  回复  更多评论   

我现在也遇到了这个问题,如果说直接启动tomcat可以找到des,而用eclipse启动tomcat就找不到这个算法的话,我是这样想的,他们肯定是用到了某个jar包中的算法,这个jar包应该就是sunjce_provider.jar了。
您的意思是说实际上两者用的jar包都是相同的,但是eclipse屏蔽了sunjce_provider.jar中的des算法?
但是我试过了,如果工程不需要用到tomcat,eclipse还是可以找到des算法的,所以问题的关键是不是在于eclipse中tomcat的设置或者是eclipse的tomcat插件呢?
2010-02-26 13:51 | test

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案  回复  更多评论   

@test
其实我的意思是当你通过Eclipse Tomcat插件启动Tomcat服务时,会遇到这样的问题,个人觉得Eclipse在发布这样的一个Web工程的时候,会隐藏掉一些签名信息。
2010-02-26 19:46 | “:”

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案  回复  更多评论   

在csdn下了一个jce-jdk13-120.jar,加入后搞定.
2012-03-05 10:20 | liveimain

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案  回复  更多评论   

赞,已解决
2013-08-19 20:54 | HankJhq

# re: java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方案  回复  更多评论   

通过脚本启动java类也会出现这个问题。
2015-08-31 18:07 | 牛牛牛

只有注册用户登录后才能发表评论。


网站导航: