美文网首页
Android AES解密报错javax.crypto.BadP

Android AES解密报错javax.crypto.BadP

作者: 程思扬 | 来源:发表于2019-11-21 16:20 被阅读0次

这个问题可是让我头疼了好久,并试了很多方法在此推荐两种方法:

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”);
————————————————
版权声明:本文为CSDN博主「程思扬」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25749749/article/details/103185604

相关文章

网友评论

      本文标题:Android AES解密报错javax.crypto.BadP

      本文链接:https://www.haomeiwen.com/subject/ryutwctx.html