C#学习教程:算法 – C#中的RijndaelManaged类是否等同于AES加密?分享


算法 – C#中的RijndaelManaged类是否等同于AES加密?

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

RijndaelManaged算法可以安全地用于Web项目吗? 谢谢 :)

AES算法是在1997年至2000年由NIST举办的竞赛中选出的。获胜者是一种名为Rijndael的算法。

NIST指定AES算法具有128位块大小。 由于Rijndael支持128,160,192,224和256位的块大小,因此最终的AES规范与原始的Rijndael规范不同。 换句话说,“AES”和“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并用于解密数据。

(抱歉提出旧post,但此信息不在此处)

上述就是C#学习教程:算法 – C#中的RijndaelManaged类是否等同于AES加密?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031611.html

发表评论

邮箱地址不会被公开。 必填项已用*标注