专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Eclipse

java.security.NoSuchAlgorithmException: Cannot find any provider

发布时间:2010-06-05 15:34:31 文章来源:www.iduyao.cn 采编人员:星星草
求解一加密解密的怪问题,哪位专家知道麻烦解答一下!谢谢!!!!
问题是:在Eclipse中启动tomcat,然后在登陆页面输入密码登陆时就报以下错误,而单独启动tomcat,不在Eclipse中启动tomcat,登陆页面输入密码却能正常登陆!

(1)异常日志
2009-01-06 09:16:03 [com.opensymphony.xwork2.validator.ActionValidatorManagerFactory]-[INFO] Detected AnnotationActionValidatorManager, initializing it...
java.security.NoSuchAlgorithmException: Cannot find any provider supporting DESede
at javax.crypto.Cipher.getInstance(DashoA13*..)

(2) 报异常代码行:(Cipher c1 = Cipher.getInstance(Algorithm))

/**
* 解密操作
*/ 
public static String decryptMode(String str)
{
try
{
// 将string转换回来成为byte数组:
BASE64Decoder dec = new BASE64Decoder();
byte[] src = dec.decodeBuffer(str);

// 生成密钥
SecretKey deskey = new SecretKeySpec(keyBytes, Algorithm);

// 解密
Cipher c1 = Cipher.getInstance(Algorithm);[color=#FF0000][/color]
c1.init(Cipher.DECRYPT_MODE, deskey);
byte[] deSrc = c1.doFinal(src);

return new String(deSrc);
}
catch (java.security.NoSuchAlgorithmException e1)
{
e1.printStackTrace();
}
catch (javax.crypto.NoSuchPaddingException e2)
{
e2.printStackTrace();
}
catch (java.lang.Exception e3)
{
e3.printStackTrace();
}
return null;
}

(3)运行环境配置:
apache-tomcat-5.5.27
jdk1.6.0_06
Eclipse Platform Version: 3.3.1.1

(4)我怀疑是Eclipse环境配置或包引用有问题,要不怎么单独在外启动tomcat就能正常,不会报以上错误;

------解决方案--------------------
确实有所不同,遇到过类似问题,冒解决,呵呵
1.Cipher c1 = Cipher.getInstance(Algorithm); 
直接把Algorithm换成"DESede"试试
2.换个JDK,比如换个1.5的试试看

------解决方案--------------------
出现此错误是因为Eclipse和默认启动Tomcat所查找的jar包不同所造成的。
解决方法就是把tomcat参照的加密处理的jar拷贝到WEB-INF/lib下面。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: