在此代码中,此行导致异常:
clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT));
javax.crypto.BadPaddingException: pad block corrupted
我从以下位置获得了代码:http :
//www.techrepublic.com/blog/software-engineer/attention-android-developers-
keep-user-data-safe/
有任何想法吗?
private String decrypt (String encryptedText) {
byte[] clearText = null;
try {
SecretKeySpec ks = new SecretKeySpec(getKey(), "AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.DECRYPT_MODE, ks);
clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT));
return new String(clearText, "UTF-8");
} catch (Exception e) {
return null;
}
}
详细信息:我也在Android上对其进行加密
owlstead的建议很有帮助,但是对于这种情况,在使用
Android开发人员注意:确保用户数据安全 http://www.techrepublic.com/blog/software-
engineer/attention-android-developers-keep-user-data-
safe/
我对代码进行了一些更改,这些更改将来可能会对其他人有所帮助。我完全删除了getkey方法。
private static String seed;
/**
* Encrypts the text.
* @param clearText The text you want to encrypt
* @return Encrypted data if successful, or null if unsucessful
*/
protected String encrypt(String clearText) {
byte[] encryptedText = null;
try {
byte[] keyData = seed.getBytes();
SecretKey ks = new SecretKeySpec(keyData, "AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, ks);
encryptedText = c.doFinal(clearText.getBytes("UTF-8"));
return Base64.encodeToString(encryptedText, Base64.DEFAULT);
} catch (Exception e) {
return null;
}
}
/**
* Decrypts the text
* @param encryptedText The text you want to encrypt
* @return Decrypted data if successful, or null if unsucessful
*/
protected String decrypt (String encryptedText) {
byte[] clearText = null;
try {
byte[] keyData = seed.getBytes();
SecretKey ks = new SecretKeySpec(keyData, "AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.DECRYPT_MODE, ks);
clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT));
return new String(clearText, "UTF-8");
} catch (Exception e) {
return null;
}
}
我尝试解密从Web服务接收的加密数据。 使用AES 128进行加密。 我使用以下代码对数据进行解密: 在 密码doFinal() 我得到了以下例外: javax.crypto.badpaddingexception垫块损坏 我浏览了我的帖子,但没有找到解决办法。我被困在这里了。
在我的windows Phone8应用程序中,我需要使用desede/cbc/pkcs5padding和PBKDF2密钥加密-解密数据。 我找到了如何使用Bouncy Castle加密的示例: http://www.go4expert.com/articles/bouncy-castle-net-implementation-triple-t24829/ 并且我能够加密我的数据(文本),但是我不能
我做了很多研究,但我找不到我的问题的答案。我在做AES加密(Rijndael块大小128位)。NET和解密在Android(AES)与相同的密码,盐 C#加密代码片段: Android解密代码段: 密码doFinal调用引发以下异常。 “05-02 18:17:38.239:W/System.err(25547):javax.crypto.BadPaddingException:填充块损坏” 我确
我有CMS加密数据使用弹跳城堡,我想解密它的内容。然而,我遇到了获取。我相信,秘密钥匙有问题
-IV是相同的,因为目前它是静态变量,用于测试目的。 -密码设置为AES/CBC/PKCS5Padding -键设置为AES 编辑 添加IV发生器方法
我被困在一个问题与AES解密在我的Android应用程序。我已经搜索了很多,但无法得到解决方案。 这是步骤,我正在做的。 用我的密钥加密信用卡号并发送到Web服务器 此外,来自服务器的加密信息与我们以加密格式发送的信息不同。在iPhone应用程序中也做了同样的事情,iPhone能够成功地解密信息。 我使用以下代码进行加密和解密。 请建议。 编辑:我还有一件事,那就是工作