AES加密方式是目前来看值得选择的加密方式,但是在Android中使用AES加密时,有些坑看似不大,却让很多人栽了跟头。
Android 4.2之后SHA1PRNG强随意种子算法调用不同,需要区别调用,这个你造吗。
下面贴出部分关键代码,代码与网络上普遍存在的AES加密代码大同小异,不做过多解释。但是解决了那些大部分代码中存在的密文不唯一、解密不出明文的问题。
AESCrypt.java中关键代码
public 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.