一、AES加密算法特点介绍
- AES加密解密算法是一种可逆的对称加密算法,这类算法在加密和AES解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥,一般用于服务端对服务端之间对数据进行加密解密。它是一种为了替代原先 DES、3DES而建立的高级加密标准(Advanced Encryption Standard)。
1.1、AES加密算法特点
- 作为可逆且对称的块加密,AES加密算法的速度比公钥加密等加密算法快很多,在很多场合都需要AES对称加密,但是要求加密端和解密端双方都使用相同的密钥是AES算法的主要缺点之一。
二、AES加密/解密工具操作方式
- 首先,设置AES加密参数,然后,上传或输入要加密的原始文本,最后,点击开始AES加密即可。
- AES加密/解密工具,主要用于在线AES加密文本和AES解密文本,支持设置多种AES工作模式、AES填充模式和AES密钥长度。AES加密和AES解密参数需要完全一致才能成功,该在线工具加密解密文本使用Base64编码的字符串。
2.1、AES工作模式
- AES加密算法常见的工作模式为:ECB,CBC,OFB,CFB,CFB8,CTR,GCM等,除了ECB工作模式无须设置初始化向量IV而不安全之外,其它的AES工作模式都必须设置向量IV。
2.2、AES填充模式
块密码只能对确定长度的数据块进行处理,而消息的长度通常是可变的,因此需要选择填充模式。当您选择NONE不填充时,则要保证加密文本长度为8的倍数,否则出现AES解密/加密异常。
- 填充区别:在 ECB、CBC工作模式下最后一块要在加密前进行填充,其它不用选择填充模式;
- 填充模式:AES支持的填充模式为PKCS7和NONE不填充。其中PKCS7标准是主流加密算法都遵循的数据填充算法。AES标准规定的区块长度为固定值128Bit,对应的字节长度为16位,这明显和PKCS5标准规定使用的固定值8位不符,虽然有些框架特殊处理后可以通用PKCS5,但是从长远和兼容性考虑,推荐PKCS7。
2.3、AES加密密钥和密钥长度
- AES密钥长度只有三个值,128Bit、192Bit、256Bit,对应的字节长度为16位、24位和32位,但是AES加密标准规定区块长度只有一个值,固定为128Bit,对应的字节长度为16位。AES加密密钥KEY用于加密解密数据,不能公开传输,例如16位的加密密钥KEY:1234567812345678。
2.4、AES加密向量
- AES加密向量可以公开,用于将加密随机化,同样的明文被多次加密也会产生不同的密文。
- 在实际的使用场景中,它不能像加密密钥那样直接保存在配置文件中,一般在加密端将向量IV设置为一个16位的随机值,然后和加密文本一起返给解密端。
2.5、AES附加消息
AES附加消息为GCM工作模式下的专用参数,由AES加密解密双端共同使用,可以为空。
- 初始向量IV:参数向量IV的值相当于GCM工作模式使用的Nonce;
- 消息认证码:GCM加密后生成的消息认证码TAG,GCM工作模式下专用。