Rijndael加密算法

Rijndael加密算法在线工具,Rijndael加密和Rijndael解密,支持多种Rijndael参数设置。

场景一:使用Rijndael加密文本。
1.1、请上传或输入要加密的原始文本。
1.2、请设置加密参数。
场景二:使用Rijndael解密文本。
2.1、请上传或输入解密文本。
2.2、请设置解密参数。
  操作文档

一、Rijndael加密算法在线工具文档

1.1、Rijndael加密算法介绍

Rijndael加密算法是一种可逆的对称加密算法,这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥,一般用于服务端对服务端之间对数据进行加密/解密。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael命名。


1.2、Rijndael算法与AES算法区别

严格地说,Rijndael加密算法和AES算法并不完全一样(虽然在实际应用中两者可以互换),因为Rijndael加密算法可以支持更大范围的区块长度和密钥长度,下面为具体的说明:

  • AES的区块长度固定为128比特,密钥长度则可以是128、192和256比特;
  • Rijndael使用的密钥和区块长度均可以是128、160、192、224、256比特。


二、Rijndael加密算法在线工具使用须知

2.1、Rijndael的工作模式

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


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

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


2.2、Rijndael的填充模式

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

  • 填充区别:在ECB、CBC工作模式下最后一块要在加密前进行填充,其它不用选择填充模式;
  • 填充模式:Rijndael支持的填充模式为PKCS7和NONE不填充,其中PKCS7标准是主流加密算法都遵循的数据填充算法,因此推荐PKCS7。


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

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

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


三、Rijndael加密/解密在线工具使用方式

加解密参数需要完全一致才能成功,为防止乱码和保证正确的传输结果,加解密文本一律使用Base64编码的字符串。

  • 场景一:使用Rijndael密钥加密文本,您可以手动或使用默认值进行Rijndael加密;
  • 场景二:使用Rijndael密钥解密文本,用于在线解密Rijndael字符串。