c#中的RijndaelManaged类是否等同于AES加密?

本文关键字:AES 加密 等同于 是否 中的 RijndaelManaged | 更新日期: 2023-09-27 18:18:58

我问这个问题是为了确认c#中的RijndaelManaged类是否等同于AES加密。从我所阅读的内容来看,RijndaelManaged是实现AES加密的首选算法。有人能证实一下吗?

RijndaelManaged算法安全用于web项目吗?谢谢:)

c#中的RijndaelManaged类是否等同于AES加密?

AES算法在1997年至2000年间由NIST举办的竞赛中被选中。最终胜出的是Rijndael算法。

NIST指定AES算法的块大小为128位。由于Rijndael支持128、160、192、224和256位的块大小,因此最终的AES规范与最初的Rijndael规范在这方面有所不同。换句话说,"AES"answers"Rijndael"是相同的算法,除了"AES"被限制为128位的块大小。

块大小与密钥大小无关。该算法支持128位、192位和256位密钥。更长的密钥不一定"更强",因为AES在理论上有一定的弱点。无论哪种方式,128位密钥在可预见的未来都足够长了。

正如EkoostikMartin所说,AES到目前为止是不可破解的。但是密码学很难,即使是专业人士也不是每次都能做到。在不知道自己在做什么的情况下使用原始加密原语可能会导致一些不好的结果。换句话说,密码很少是"安全链"中最薄弱的环节。

如果您想使用AES,只需使用AesManaged类- http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged%28v=vs.100%29.aspx

您引用的RijndaelManaged类并不完全适合AES规范,主要是因为它提供了块大小的选项。AesManaged使用指定的128位块大小

对于web项目来说,它是一种非常强大的加密方法(据我所知,它从未被破坏过),但就像任何东西一样,它必须正确使用

有一些不同之处,特别是改变块大小和密钥大小的能力。(据我所知,AES使用128的固定块大小)
如果您在Rijndael中使用CFB,则块大小将调整为反馈大小,这意味着您无法保证块大小为128。

为了确保等效性,您必须使用128的块大小,并且要么避免CFB,要么确保反馈大小也为128。

另一件要注意的事情:如果您使用带有CFB的静态IV,那么您的密码将是确定的。避免这种情况,因为前缀IV可以很容易地识别并用于解密您的数据。