恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述android 上AES解密是报错javax.crypto.BadPaddingException: pad block corrupted相关的知识,希望能为你提供帮助。
网上看到两种方法:
1.SecretKeySpec skeySpec = new SecretKeySpec(getRawKey(key), "AES");
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
sr.setSeed(seed);
kgen.init(128, sr);
// 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}
红色的部分为注意项,不能写为SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
2.Cipher cipher = Cipher.getInstance("AES");
---------4.3以上有bug
修改为
Cipher cipher = Cipher.getInstance("AES/ECB/ZeroBytePadding");
【android 上AES解密是报错javax.crypto.BadPaddingException: pad block corrupted】
推荐阅读
- APP开发要理智
- Android视频编辑SDK--RDVECore来自锐动的无UI,高度抽象化API
- SpringMVC中的@Controller和@RequestMapping到底什么鬼()
- 互助推广APP免费解决自媒体推广难题
- Android LiveData简介
- 教授App Inventor课程
- 依赖服务或组无法打开,本文教您这样处理依赖服务或组无法打开
- 内存不能为read,本文教您内存不能为read如何处理
- 出错720,本文教您宽带连接出错720怎样处理