在线AES加密解密工具
AES加密的强度(影响因素) AES(Advanced Encryption Standard)是一种对称密钥加密算法,是目前最为流行的对称加密算法之一。
AES (Advanced Encryption Standard) 是一种对称加密算法,也是当前最流行的加密算法之一,由美国国家标准和技术研究所 (NIST) 标准化,已经成为了国际标准。它的加密密钥长度可以为 128 位、192 位或 256 位,其中 128 位密钥版本最为流行。AES 是一种分组密码,将明文分成 128 位一组,然后分别进行加密,加密方式包括替换、置换、线性变换等基本操作。通过多轮迭代加密,在满足密钥安全性的前提下,能够提供很高的加密强度,以防止恶意攻击者的攻击。在许多场景下,AES 已经被广泛应用,例如数据传输、文件加密、数据库加密等等。
标题 | 值 | 说明 |
---|---|---|
Mode
运算模式 |
CBC
密码分组链接 Cipher-block chaining |
该模式对于每个待加密的密码块在加密前会先与前一个密码块的密文异或然后再用加密器加密。第一个明文块与一个叫初始化向量的数据块异或。 相比 ECB 有更高的保密性,但由于对每个数据块的加密依赖于前一个数据块的加密,所以加密无法并行。 与 ECB 一样在加密前需要对数据进行填充,不是很适合对流数据进行加密。 |
ECB
电子密码本模式 Electronic codebook |
是最简单的块密码加密模式,加密前根据加密块大小(如 AES 为 128 位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理。 由于每块数据的加密是独立的因此加密和解密都可以并行计算。 最大的缺点是相同的明文块会被加密成相同的密文块,这种方法在某些环境下不能提供严格的数据保密性。 |
|
CFB
密文反馈 Cipher feedback |
与 “ECB 和 CBC 模式只能够加密块数据” 不同,CFB 能够将块密文(Block Cipher)转换为流密文(Stream Cipher)。 CFB 的加密工作分为两部分:先将前一段加密得到的密文再加密;接着将第 1 步加密得到的数据与当前段的明文异或。 由于加密流程和解密流程中被块加密器加密的数据是前一段密文,因此即使明文数据的长度不是加密块大小的整数倍也是不需要填充的,这保证了数据长度在加密前后是相同的。 CFB 模式非常适合对流数据进行加密,解密可以并行计算。 |
|
OFB
输出反馈 Output feedback |
OFB 是先用块加密器生成密钥流(Keystream),然后再将密钥流与明文流异或得到密文流,解密是先用块加密器生成密钥流,再将密钥流与密文流异或得到明文,由于异或操作的对称性所以加密和解密的流程是完全一样的。 OFB 与 CFB 一样都非常适合对流数据的加密。 OFB 由于加密和解密都依赖与前一段数据,所以加密和解密都不能并行。 |
|
CTR
计算器模式 Counter |
不常见,在 CTR 模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。 这种加密方式简单快速,安全可靠,而且可以并行加密。 但是在计算器不能维持很长的情况下,密钥只能使用一次。 |
|
Padding
填充模式 |
Pkcs7 | 填充字符串包含一个字节序列的其中每个等同于添加填充字节的总数。 |
Iso97971 | 输入数据必须填充为密码块大小的倍数,以便每个后续的加密操作将具有完整的数据块。定义了三种填充方法。在每种情况下,n是块长度(以位为单位)。 | |
AnsiX923 | 填充字符串包含的一个填充了零长度的字节序列。 | |
Iso10126 | 填充字符串包含的长度的随机数据。 | |
ZeroPadding | 填充字符串由设置为零的字节组成。 | |
NoPadding | 不填充是完成的。 |