AES 加密算法介绍
主要特点
-
对称密钥算法:AES 是一种对称密钥算法,这意味着加密和解密使用相同的密钥。这种特性使得加密和解密的操作相对简单且高效,在密钥管理妥善的情况下,能确保数据的保密性。
-
分组密码:AES 对固定大小的数据块进行操作,是分组密码类型。其标准块大小为 128 位,这种以固定块大小处理数据的方式有助于保证加密过程的规范性和安全性。
-
密钥长度:AES 支持 128、192 和 256 位的密钥长度。密钥长度是决定加密强度的重要因素,一般来说,密钥越长,加密越强。较长的密钥意味着更多的密钥组合可能性,从而增加了破解的难度。
-
安全性:AES 被广泛认为是非常安全的加密算法,并在各种安全协议和应用程序中有着广泛应用。其安全性经过了长期的实践检验和理论分析,能够有效抵御多种攻击手段,保护数据安全。
AES 加密术语
在进行 AES 加密时,您需要输入要加密的纯文本或密码。同时,需要选择分组密码加密模式。
AES 加密支持的不同模式
-
ECB(Electronic Code Book)模式:这是最简单的加密方式,加密时不需要 IV(偏移量)。输入的明文会被分成块,每个块用提供的密钥进行加密,其特点是相同的明文块被加密成相同的密文块。
-
CBC(密码块链接)模式:强烈推荐使用此模式,它是分组密码加密的一种高级形式。它需要 IV 来使每条消息都具有唯一性,这意味着相同的纯文本块被加密为不同的密码文本块。因此,与 ECB 模式相比,它提供了更强大的加密,但速度相对稍慢。若没有输入 IV,则此处将使用 CBC 模式的默认值,并且默认为从零开始的字节[16]。
-
CTR(计数器)模式:CTR 模式(CM)也称为整数计数器模式(ICM)和分段整数计数器模式(SIC)。计数器模式将分组密码转换为流密码。CTR 模式具有与 OFB 类似的特性,但也允许在解密过程中具有随机访问属性。CTR 模式非常适合在多处理器机器上运行,其中可以并行加密块。
-
GCM(Galois/Counter 模式):GCM 是一种对称密钥分组密码操作模式,使用通用哈希来提供经过认证的加密。GCM 被认为比 CBC 模式更安全,因为它具有内置的身份验证和完整性检查,并且因其性能优势而得到广泛使用。
填充模式
对于 AES 加密模式 CBC 和 ECB,填充可以是 PKCS5PADDING 和 NoPadding。使用 PKCS5Padding,16 字节字符串将产生 32 字节输出(16 的下一个倍数)。AES GCM PKCS5Padding 是 NoPadding 的同义词,因为 GCM 是一种不需要填充的流式传输模式。GCM 中的密文仅与明文一样长。因此,默认选择 nopadding。
AES 密钥大小
无论密钥长度是 256、192 还是 128 位,AES 算法的块大小都是 128 位。当对称密码模式需要 IV 时,IV 的长度必须等于密码的块大小。因此,您必须始终对 AES 使用 128 位(16 字节)的 IV。
AES 提供 128 位、192 位和 256 位密钥大小用于加密。如果您选择 128 位进行加密,则密钥长度必须为 16 位,密钥大小为 192 位和 256 位时则分别为 24 位和 32 位。例如,如果密钥大小为 128,则有效密钥必须为 16 个字符,即 16*8 = 128 位。
输出格式
现在您可以输入相应的密钥。默认情况下,加密文本将采用 base64 编码,但您也可以选择将输出格式选择为 HEX。类似地,对于图像和.txt 文件,加密形式将采用 Base64 编码。
AES 解密也是同样的过程,默认输入的是 Base64 格式的文本,最终解密输出的是纯文本字符串。
AES 的应用
-
数据保护:用于加密敏感信息,确保数据在存储和传输过程中的保密性,防止未经授权的访问和数据泄露。
-
安全通信:在 SSL/TLS 实现中发挥重要作用,保障安全的网页浏览,确保用户与服务器之间通信的安全性。
-
加密协议:用于各种安全协议和标准,例如用于无线安全的 WPA2,为网络和通信提供安全保障。
AES 因其强大和高效的特性而受到广泛信赖,成为现代加密实践的基石。