简介
最近手机中涉及到用户账户密码保存的问题,选用 AES 加密算法进行加密后,再通过 SharedPreferences 保存在手机端。
本文主要介绍 AES 的加密、解密用法。
代码
初始化秘钥
private static final String AES = "AES";
private static final String PASSWPRD = "123456";
public static SecretKeySpec initKey(){
SecretKeySpec key = null;
try {
KeyGenerator kg = KeyGenerator.getInstance(AES);
kg.init(128,new SecureRandom(PASSWPRD.getBytes()));//通过这种算法,每次生成的 key 都是一样的
//也可以 kg.init(128),这样每次生成的 key 都不一样
SecretKey securityKey = kg.generateKey();
byte[] encodedKey = securityKey.getEncoded();
key = new SecretKeySpec(encodedKey, AES);//AES 也可以替换为"AES/CBC/PKCS5PADDING"
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return key;
}
原创...大约 2 分钟