码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-11-21 18:48:13      阅读:455      评论:0      收藏:0      [点我收藏+]

标签:不能   两种方法   ecb   secure   turn   random   byte   java   add   

网上看到两种方法:

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

标签:不能   两种方法   ecb   secure   turn   random   byte   java   add   

原文地址:http://www.cnblogs.com/suxiaoqi/p/7874635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!