AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,下面是我自己整理的安卓针对AES加密的代码。
public class CryptAES {
private static final String AESTYPE ="AES/ECB/pkcs5padding"; //加密模式和填充,可根据后台的加密模式和填充进行修改
public static String AES_Encrypt(String keyStr, String plainText) {
byte[] encrypt = null;
try{
Key key = generateKey(keyStr);
Cipher cipher = Cipher.getInstance(AESTYPE);
cipher.init(Cipher.ENCRYPT_MODE, key);
encrypt = cipher.doFinal(plainText.getBytes());
}catch(Exception e){
e.printStackTrace();
}
return new String(Base64.encode(encrypt, 0)); //java端将此行更改为 return new String(Base64.encodeBase64(encrypt));
}
public static String AES_Decrypt(String keyStr, String encryptData) {
byte[] decrypt = null;
try{
Key key = generateKey(keyStr);
Cipher cipher = Cipher.getInstance(AESTYPE);
cipher.init(Cipher.DECRYPT_MODE, key);
decrypt = cipher.doFinal(Base64.decode(encryptData,0)); //java端将此行更改为 decrypt = cipher.doFinal(Base64.decodeBase64(encryptData));
}catch(Exception e){
e.printStackTrace();
}
return new String(decrypt).trim();
}
private static Key generateKey(String key)throws Exception{
try{
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
return keySpec;
}catch(Exception e){
e.printStackTrace();
throw e;
}
}
}
运行结果: