您的位置 首页 java

AES加密/解密

一、AES加密/解密在线工具文档

1.1、AES加密/解密算法介绍

AES加密/解密算法是一种可逆的对称加密算法,这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥,一般用于服务端对服务端之间对数据进行加密/解密。它是一种为了替代原先DES、3DES而建立的 高级加密标准 (Advanced Encryption Standard)。

1.2、AES加密/解密算法特点

作为可逆且对称的块加密,AES加密算法的速度比公钥加密等加密算法快很多,在很多场合都需要AES对称加密,但是要求加密端和解密端双方都使用相同的密钥是AES算法的主要缺点之一。

二、AES加密/解密在线工具使用须知

2.1、AES的工作模式

AES常见的工作模式为:ECB,CBC,OFB,CFB,CFB8,CTR,GCM,除了ECB无须设置初始化向量IV而不安全之外,其它AES工作模式都必须设置向量IV,其中GCM工作模式较为特殊。

AES-GCM工作模式注意事项:

  • 初始向量 :参数向量IV的值相当于GCM使用的Nonce;
  • 附加消息 :GCM专用,由加解密双端共享,AAD可以为空;
  • 消息认证码 :GCM加密后生成的消息认证码TAG,GCM解密时专用。

2.2、AES的填充模式

块密码只能对确定长度的数据块进行处理,而消息的长度通常是可变的,因此需要选择填充模式。

  • 填充区别 :在ECB、CBC工作模式下最后一块要在加密前进行填充,其它不用选择填充模式;
  • 填充模式 :AES支持的填充模式为PKCS7和NONE不填充。其中PKCS7标准是主流加密算法都遵循的数据填充算法。AES标准规定的区块长度为固定值128Bit,对应的字节长度为16位,这明显和PKCS5标准规定使用得固定值8位不符,虽然有些框架特殊处理后可以通用PKCS5,但是从长远和兼容性考虑,推荐PKCS7。

2.3、AES密钥KEY和初始化向量IV

初始化向量IV可以有效提升安全性,但是在实际的使用场景中,它不能像密钥KEY那样直接保存在配置文件或固定写死在代码中,一般正确的处理方式为:在加密端将IV设置为一个16位的随机值,然后和加密文本一起返给解密端即可。

  • 密钥KEY :AES标准规定区块长度只有一个值,固定为128Bit,对应的字节为16位。AES规定密钥长度只有三个值,128Bit、192Bit、256Bit,对应的字节为16位、24位和32位,密钥KEY不能公开传输,用于加密和解密数据;
  • 初始化向量IV :该字段可以公开,用于将加密随机化。同样的明文被多次加密也会产生不同的密文,避免了较慢的重新产生密钥的过程,初始化向量与密钥相比有不同的安全性需求,因此IV通常无须保密。然而在大多数情况中,不应当在使用同一密钥的情况下两次使用同一个IV,一般推荐初始化向量IV为16位的随机值。

本教程引自《试试吧 – 领先的在线工具平台》,主打原创,全部免费,打开浏览器搜:试试吧,全网排名第一的就是本站,敬请 收藏和分享 ,快来试试吧:。

文章来源:智云一二三科技

文章标题:AES加密/解密

文章地址:https://www.zhihuclub.com/196671.shtml

关于作者: 智云科技

热门文章

网站地图