在线AES加密解密

在线AES加密解密工具,支持CBC、ECB、CTR等5种加密模式,可自定义密钥为128、192和256位,在线计算AES加密和AES解密结果,支持多种偏移量、填充和输出格式。

加密模式
内容填充
密钥长度
密文类型
AES密钥
iv
密钥填充

在线aes加密iv长度为16字符,密钥长度根据位数为16(128位)、24(192位)和32(256位)字符,iv与密钥超长则截取,不足则末尾填充哦~

33
2
15

AES加密解密在线介绍

AES加密解密算法是最流行的对称加密算法,是为了取代DES而建立的高级加密标准。该算法是可逆的,采用同一个密钥对数据进行对称加密/AES解密。常用于服务端之间的数据传输和安全性校验,https就是用AES来进行数据传输的,英文全称为Advanced Encryption Standard。

AES支持的模式

  1. ECB模式(The Electronic Codebook Mode)
  2. CBC模式(The Cipher Block Chaining Mode)
  3. CFB模式(The Cipher Feedback Mode)
  4. CTR模式(The Counter Mode)
  5. OFB模式(The Output Feedback Mode)

其中,使用最为普遍的是CBC模式,不建议使用的是ECB模式(不安全)

AES常见的内容填充规则

  1. NoPadding:顾名思义,就是不填充。缺点就是只能加密长为BlockSize倍数的信息,一般不会使用
  2. ZerosPadding:全部填充0x00,无论缺多少全部填充0x00,已经是BlockSize的倍数仍要填充,一般不会使用
  3. PKCS#5:缺几个字节就填几个字节,每个字节的值为缺的字节数;在AES加密当中严格来说是不能使用PKCS#5的,因为AES的块大小是16bytes而PKCS#5只能用于8bytes
  4. PKCS#7:缺几个字节就填几个字节,每个字节的值为缺的字节数;当长度不对齐时,将数据填充到满足分组的长度;当长度刚好对齐时,在原始数据末尾新增一个填充块;OpenSSL在AES加密中默认使用PKCS#7
  5. ISO 10126:最后一个字节的值是需要填充的字节数(需要填充的字节数包括了最后一字节),其他全部填随机数
  6. ANSI X9.23:跟ISO 10126很像,只不过ANSI X9.23其他字节填的都是0而不是随机数

AES密钥KEY和初始化向量IV

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

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

意见反馈