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个回答

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

sixthreefly
sixthreefly 请问你怎么解决的?
大约 6 年之前 回复

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

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

Cipher.ENCRYPT_MODE 加密模式

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

应该是 keySpec 出的错误

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

sun.misc.BASE64Decoder包的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问