参考资料:百度百科【高级加密标准】
AES简介
1、密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
2、它的功能是代替原先的DES数据加密解密算法。
3、高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一
何为对称加密解密
1、对称算法(Symmetric Algorithm),又称为传统密码算法,在大多数对称算法中,加密密匙和解密密匙是相同的,所以也称为单密匙算法。
2、对称算法的安全性依赖于密匙,泄露密匙就意味着消息很可能被他人解密。
3、对称加密的优点在于算法实现的效率高、速度快。
4、对称加密的缺点在于密匙的管理比较复杂。
为什么要对数据进行加密
1、为了避免明文传输泄露敏感数据,加密后可以保证数据的安全,就算别人看到了这些数据,也不知道他具体内容是什么。
2、数据加密是防止数据攻击的一种有效而经济的方法。
3、避免数据在传输过程中被篡改,一旦数据被篡改,AES将无法解密,而一旦解密失败,则说明数据被篡改了。
AES加密解密算法应用的场景
1、两个内部系统之前敏感数据传输的时候可使用AES对数据进行加密解密。
2、不想让数据明文传输的情况。
3、防止数据在传输过程中被篡改。
为什么选择AES加密解密算法
1、算法实现的效率高、速度快。
2、符合主流标准。
Java实现AES算法加密解密
AES工具类的代码如下:
package com.chenlw.java.web.utils.utils;
import org.apache.commons.lang.StringUtils;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;
/**
* AES加密和解密工具类
* Created by chenlw on 2019/06/18
*/
public class AESUtils {
/**
* 编码格式
*/
private static final String CHARSET_UTF8 = "UTF-8";
/**
* AES加密算法
*/
private static final String KEY_AES = "AES";
/**
* 签名算法
*/
public static final String SIGN_ALGORITHMS = "SHA1PRNG";
public static void main(String[] args) throws Exception {
test1();
//testDecrypt();
}
public static void test1() throws Exception{
// Key为加密和解密的钥匙
final String KEY = "12345678";
String content = "12345678";
System.o