早教吧 育儿知识 作业答案 考试题库 百科 知识分享

加解密代码如下:publicstaticbyte[]encryptRes(byte[]data,byte[]desKey){try{IvParameterSpecspec=newIvParameterSpec(desKey);DESKeySpecdks=newDESKeySpec(desKey);SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance

题目详情
加解密代码如下:
public static byte[] encryptRes(byte[] data, byte[] desKey) {
try {
IvParameterSpec spec = new IvParameterSpec(desKey);
DESKeySpec dks = new DESKeySpec(desKey);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, securekey, spec);
byte[] encryptContent = cipher.doFinal(data);
return encryptContent;
} catch (Exception e) {
return null;
}
}
public static byte[] decryptRes(byte[] data, byte[] desKey) {
try {
IvParameterSpec spec = new IvParameterSpec(desKey);
DESKeySpec dks = new DESKeySpec(desKey);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, securekey, spec);
//data = Base64.decode(data);
byte[] encryptContent = cipher.doFinal(data);
return encryptContent;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
解密时,异常信息如下所示:
javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA12275)
at javax.crypto.Cipher.doFinal(DashoA12275)
at beans.DESUtil.decryptRes(DESUtil.java:39)
at beans.DESUtil.decryptCertKey(DESUtil.java:61)
at beans.PublicKeyList.getPublicKeyList(PublicKeyList.java:53)
at servlet.GetPublicKey.doGet(GetPublicKey.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
……
请各位高手指点一下,应该怎么解决,不甚感激!
▼优质解答
答案和解析
根据你提供的错误消息.
我认为出现这个问题可能是你的加密和解密使用的填充算法不一致导致的.
1、要确认下是否加密和解密都是使用相同的填充算法(也就是说,是否都是使用PKCS5Padding)
2、确认下你要解密的字节数组是否正确.
看了 加解密代码如下:public...的网友还看了以下:

加解密代码如下:publicstaticbyte[]encryptRes(byte[]data,b  2020-05-17 …

甲乙两地同时下雨,和在甲地下雨的条件下,乙地也下雨书上说后者是条件概率,可我看怎么是一个意思呢?不  2020-06-04 …

色谱在其它条件不变得情况下,若柱长增加一倍,色谱峰的宽度为原色谱峰宽度的在其它条件不变得情况下,   2020-06-18 …

阅读下列材料:材料一:唐制,每事先经由中书省,中书做定将上,得旨,再下中书。中书付门下。或有未当,  2020-06-21 …

如图所示,在饮料瓶的下方戳一个小孔,瓶中灌水,手持饮料瓶,小孔中有水喷出.现让瓶子做下述几种运动,  2020-07-01 …

顾炎武指出:“自天下为家,各亲其亲,各子其子,而人之有私,固情之所以不能免矣。……合天下之私以成天  2020-07-11 …

下列有关高等绿色植物代谢的叙述正确的是()A.叶肉细胞在黑暗条件下不能合成ATPB.线粒体只分解有机  2020-11-22 …

阅读下面的文章,完成下列各题。阳关月扬之水从敦煌城里坐了开往南湖的最后一班车,到阳关下车,已是薄暮时  2020-11-22 …

一.出租车司机小李某天下午的营运全市在东西走向中山路上进行的,如果规定向东行驶为正,他这天下午行车的  2020-12-15 …

阅读下面这首宋诗,完成问题。晚泊岳阳欧阳修卧闻岳阳城里钟,系舟岳阳城下树。正见空江明月来,云水苍茫失  2020-12-25 …