xinxin082
2010-08-21 11:39
浏览 597
已采纳

DES加密错误(java.security.NoSuchAlgorithmException: Cannot find any provider suppor)

我的环境是jdk1.5,在请求一个webService的时候要在soap header中传一个密码,并对密码进行DES加密。但是现在加密代码:
deskey = new DESKeySpec(key);
keySpec = new SecretKeySpec(deskey.getKey(), "DES");
//报错的地方
Cipher cipher = Cipher.getInstance(strAlgorithm);
//报错的地方
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
byte[] utf8 = strDataToEncrypt.getBytes("UTF8");
byte[] enc = cipher.doFinal(utf8);
strResult = new sun.misc.BASE64Encoder().encode(enc);

报了java.security.NoSuchAlgorithmException: Cannot find any provider suppor的错误,网上查了好多资料都没什么解决的办法,也试了别人说只单启Tomcat就不会报错了,但是我是要在eclipse中启Tomcat的,这样才能调试代码么。有谁知道解决办法吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 不良校长 2010-08-23 00:24
    已采纳

    去下SUN独立的加密算法包, 放到JDK下就好了。

    点赞 评论
  • srj290310202 2010-08-21 14:11

    des加密时密钥不能少于16位

    点赞 评论
  • ldbkyo 2010-08-21 14:27

    strAlgorithm 传的参数是什么?是 “DES” 吧?

    Cipher.ENCRYPT_MODE 加密模式

    keySpec = new SecretKeySpec(deskey.getKey(), "DES"); 是要对称加密算法?

    应该是 keySpec 出的错误

    key 要做下处理 (new BASE64Decoder()).decodeBuffer(key)

    sun.misc.BASE64Decoder包的

    点赞 评论

相关推荐 更多相似问题