AES加解密算法在Android中的使用就不多说了,这个网上随便可以找到,套用即可。但是之前曾经在Android4.2(SDK版本17)以及上版本中出现加密抛异常的情况,导致解密后与原文不符,貌似是在StackOverFlow上找到了解决办法。
关键代码如下:
public class AESCipher {
...
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;
}
...
}