我何时会在AesManaged或RijndaelManaged上选择AesCryptoServiceProvider?

Che*_*eso 11 .net aes rijndaelmanaged

我认为区别因素是

  • AesCryptoServiceProvider符合FIPS标准
  • AesManaged是跨平台的,需要.NET 3.0
  • RijndaelManaged在.NET 2.0上运行,需要限制块大小

那是对的吗?

Pau*_*ulG 3

AesManaged 文档指出

“AES 算法本质上是 Rijndael 对称算法,具有固定的块大小和迭代计数。此类的功能与 RijndaelManaged 类相同,但将块限制为 128 位,并且不允许反馈模式。

这表明它使用 ECB(电子密码本)模式。这可能是加密数据的一个重大弱点,因为这意味着相同的纯文本数据块将导致相同的密码输出块。


编辑:(作为更正)Mode
属性 的文档表明,Mode 实际上默认为 CBC(令人困惑的是反馈模式),但不能设置为 CFB 或 OFB(密码反馈/输出反馈)

  • 不——我并不认为它只对欧洲央行有用。了解 Microsoft 文档风格后,如果实际上 AES 仅可用于 ECBB,文档会明确说明这一点。(这不是“食谱”,而是“密码本”)。AES 支持其他模式,包括 CBC。 (2认同)