我需要使用AES加密数据。在研究过程中,我发现了AesCryptoServiceProvider类。
我对加密知之甚少,也不知道初始化向量(IV)是什么,所以我尝试在stack overflow中搜索一个AES示例,这将我引向了this question。
为什么堆栈溢出链接使用RijndaelManaged类? 和 类是否在做同样的事情?
发布于 2012-11-21 16:32:28
AES基于Rijndael,但块大小限制为128位。Rijndael支持更大范围的块大小,许多加密库提供单独的Rijndael实现来补充AES。
Rijndael算法支持128、160、192、224和256位的
块大小,但在AES标准中仅指定128位块大小。[Wikipedia]
您链接到了RijndaelManaged类。AES的等效类是AesManaged。
关于类之间的区别:AesManaged简单地使用块大小设置为128的RijndaelManaged。AesManaged和RijndaelManaged不符合FIPS,如果设置了FIPS组策略标记,则在使用时将引发异常。AESFramework4.6.2(2016年8月)添加了AesCng类,这是.NET算法的CNG版本的实现。
是一段随机数据,长度等于块大小,这是某些对称操作模式(例如,CBC模式)所需的。通常,IV与第一块明文或第一块密文组合(XOR-ed)。其思想是确保使用相同的密钥对同一消息加密两次不会产生相同的输出。
https://stackoverflow.com/questions/13486109
复制相似问题