显示如何使用System.Security.Cryptography中的AES代码进行加密的大多数示例如下所示:
using (Aes aes = Aes.Create())
{
aes.Key = Key;
aes.IV = IV;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
是否需要指定键和IV两次 - 一次指向Aes对象,一次指定给CreateEncryptor()函数?或者在这种情况下,因为我已经指定了键和IV,我可以调用不带参数的CreateEncryptor()形式吗?
答案 0 :(得分:6)
你不必。如果使用属性指定值,则可以使用the CreateEncryptor()
overload(不带参数):
public virtual ICryptoTransform CreateEncryptor() {
return CreateEncryptor(Key, IV);
}
这是the doc所说的:
使用当前Key属性和初始化向量(IV)创建对称加密器对象。
或者,如果您之后不使用aes
对象来创建其他加密器/解密器,则可以省略设置属性并使用带参数的重载。