2011-12-05 47 views
0

我试图解密电子邮件ID并得到此异常。我的加密成功,但解密时,我得到了这个。BadPaddingException:在Android中损坏的垫块

Caused by: javax.crypto.BadPaddingException: pad block corrupted at org.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(JCEBlockCipher.java:715) at javax.crypto.Cipher.doFinal(Cipher.java:1090)

帮助表示赞赏

+1

我不知道你面临的是什么错误。看看这个http://stackoverflow.com/questions/8357868/how-do-i-securely-store-encryption-keys-in-java/8358023#8358023 –

+0

感谢@ padma-kumar的指针阅读我的评论 – user755499

回答

1

无论是密文已损坏,或者您没有使用相同的块大小或填充解密作为用于加密。

你能告诉我们你用来加密和解密的代码吗?

+1

感谢@qwerky为我读的指针,我发现在我的代码中,我有这些行加密SecretKeySpec skeySpec = new ecretKeySpec(someKey,“AES/CBC/PKCS5Padding”); 密码密码= Cipher.getInstance(“AES/CBC/PKCS5Padding”);而解密时,我是以这样的错误方式解密SecretKeySpec skeySpec = new SecretKeySpec(rawKey,“AES”); 密码密码= Cipher.getInstance(“AES”);.我错过了getInstance()方法中的这个“AES/CBC/PKCS5Padding”。多谢你们。 – user755499