java 解密碰到的误导人的错误提示 pad block corrupted

2012-08-24
今天碰到一个很窝火的问题
使用java进行加密</p>

代码如下:

Security.addProvider(new com.sun.crypto.provider.SunJCE());
Security.addProvider(neworg.bouncycastle.jce.provider.BouncyCastleProvider());//添加PKCS7Padding支持
Cipher cipher = Cipher.getInstance(“DESede/ECB/PKCS7Padding”,”BC”);
Key key = CipherManager.getKey(sig.getBytes(“GBK”));
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decBytes =cipher.doFinal(CipherManager.str2ByteArr(encStr));

结果怎么都是报如下错
javax.crypto.BadPaddingException: pad block corrupted
atorg.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(UnknownSource)
atjavax.crypto.Cipher.doFinal(Cipher.java:2086)

各大网站搜索折腾好久,依旧无果
最后发现……原来是因为公钥写错了,导致解密失败,翻白中……
但是这个错误有很大的误导……发在这里,期望各位在苦海中的亲能解脱早日超生……