AES(Advanced Encryption Standard的缩小)是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥长度,并且用128位分组长度加密和解密数据。
AES的加密过程:对数据的加密过程是通过把输入的明文和密钥由轮函数经N轮迭代来实现的,结尾轮与前N-1轮不同。前N-1轮依次进行S盒变换、行移位变换、列混淆变换和轮密钥加变换;第N轮与前N-1轮相比去掉了列混淆变换。下图是整个AES的加密流程:
JavaAES加密实现:
private static final String CBC_PKCS5_PADDING = "AES/CBC/PKCS5Padding";//AES是加密方式 CBC是工作模式 PKCS5Padding是填充模式
private static final String AES = "AES";//AES 加密
private static final String SHA1PRNG = "SHA1PRNG"; SHA1PRNG 强随机种子算法, 要区别4.2以上版本的调用方法
/**
* @param value 要加密的文本
* @return
*/
public static String encrypt(String value) {
if (TextUtils.isEmpty(value)) {
return value;
}
try {
byte[] result = encrypt("y