.net 我什么时候会选择AesCryptoServiceProvider而不是AesManaged或RijndaelManaged?

.net 我什么时候会选择AesCryptoServiceProvider而不是AesManaged或RijndaelManaged?,.net,aes,rijndaelmanaged,.net,Aes,Rijndaelmanaged,我认为区别因素是 AESCryptServiceProvider符合FIPS标准 AES是跨平台的,需要.NET 3.0 RijndaelManaged运行在.NET 2.0上,需要限制块大小 这差不多是对的吗?说 “AES算法本质上是Rijndael对称算法,具有固定的块大小和迭代计数。此类功能与RijndaelManaged类相同,但将块限制为128位,不允许反馈模式。” 这意味着它将使用ECB(电子码本)模式。这可能是加密数据的一个显著弱点,因为这意味着相同的纯文本数据块将导致相同的密

我认为区别因素是

  • AESCryptServiceProvider符合FIPS标准
  • AES是跨平台的,需要.NET 3.0
  • RijndaelManaged运行在.NET 2.0上,需要限制块大小
这差不多是对的吗?

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

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


编辑:(作为更正)

该属性的文档表明,Mode infact默认为CBC(令人困惑的是,CBC是一种反馈模式),但不能设置为CFB或OFB(密码反馈/输出反馈)

No-我并不认为它仅对ECB有用。了解Microsoft文档样式,如果事实上AES仅可用于ECBB,则文档会明确声明它。(它不是“烹饪书”,而是“代码本”)。AES还支持其他模式,包括CBC.Hmm,我认为你是对的,文档中可能存在矛盾。更新的回答可能重复