android 上AES解密是报错javax.crypto.BadPaddingException: pad block corrupted

恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述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】 

    推荐阅读