今天碰到一个很窝火的问题 使用java进行加密
代码如下:
Security.addProvider(new com.sun.crypto.provider.SunJCE()); Security.addProvider(new org.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 at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source) at javax.crypto.Cipher.doFinal(Cipher.java:2086) 略
各大网站搜索折腾好久,依旧无果 最后发现……原来是因为公钥写错了,导致解密失败,翻白中…… 但是这个错误有很大的误导……发在这里,期望各位在苦海中的亲能解脱早日超生……