我使用android系统提供的AES加密音频,视频,然后解密可以打开,但是加密zip文件后解密不能打开,是什么原因?
1条回答 默认 最新
简一_hz 2016-03-09 01:15关注Android 4.2之后SHA1PRNG 强随机种子算法调用方法不同,可用以下方式区别调用
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
// SHA1PRNG 强随机种子算法, 要区别4.2以上版本的调用方法
SecureRandom sr = null;
if (android.os.Build.VERSION.SDK_INT >= 17) {
sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
} else {
sr = SecureRandom.getInstance("SHA1PRNG");
}
sr.setSeed(seed);
kgen.init(256, sr); //256 bits or 128 bits,192bits
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报