C# 指定的初始化向量(IV)与此算法的块大小不匹配(Microsoft示例)
我从中复制了代码,并更改了一些不重要的内容,现在出现以下错误: 指定的初始化向量(IV)与的块大小不匹配 该算法 (我只添加了C# 指定的初始化向量(IV)与此算法的块大小不匹配(Microsoft示例),c#,encryption,cryptography,rijndaelmanaged,C#,Encryption,Cryptography,Rijndaelmanaged,我从中复制了代码,并更改了一些不重要的内容,现在出现以下错误: 指定的初始化向量(IV)与的块大小不匹配 该算法 (我只添加了加密流) 为什么在微软的文章中他们加密密钥和iv if然后抛出匹配大小的异常?加密此密钥和iv的目的是什么,如何使用此密钥和iv加密?密钥和iv是rm.key和rm.iv。在rm.CreateEncryptor()中使用加密密钥和加密IV没有意义。另外,加密IV也没有意义,因为它没有提供任何安全好处,但成本很高。我不知道为什么在microsoft文章中它没有在micros
加密流
)
为什么在微软的文章中他们加密密钥和iv if然后抛出匹配大小的异常?加密此密钥和iv的目的是什么,如何使用此密钥和iv加密?密钥和iv是
rm.key
和rm.iv
。在rm.CreateEncryptor()中使用加密密钥和加密IV没有意义。另外,加密IV也没有意义,因为它没有提供任何安全好处,但成本很高。我不知道为什么在microsoft文章中它没有在microsoft文章中//加密对称密钥和IV.encryptedSymmetricKey=rsa.Encrypt(rm.key,false);encryptedSymmetricIV=rsa.Encrypt(rm.IV,false);是的,非对称加密的最后两行代码密钥和IV是rm.Key
和rm.IV
。在rm.CreateEncryptor()中使用加密密钥和加密IV没有意义。另外,加密IV也没有意义,因为它没有提供任何安全好处,但成本很高。我不知道为什么在microsoft文章中它没有在microsoft文章中//加密对称密钥和IV.encryptedSymmetricKey=rsa.Encrypt(rm.key,false);encryptedSymmetricIV=rsa.Encrypt(rm.IV,false);是的,这是非对称加密的最后两行代码
byte[] publicKey = {214,46,220,83,160,73,40,39,201,155,19,202,3,11,191,178,56,
74,90,36,248,103,18,144,170,163,145,87,54,61,34,220,222,
207,137,149,173,14,92,120,206,222,158,28,40,24,30,16,175,
108,128,35,230,118,40,121,113,125,216,130,11,24,90,48,194,
240,105,44,76,34,57,249,228,125,80,38,9,136,29,117,207,139,
168,181,85,137,126,10,126,242,120,247,121,8,100,12,201,171,
38,226,193,180,190,117,177,87,143,242,213,11,44,180,113,93,
106,99,179,68,175,211,164,116,64,148,226,254,172,147};
byte[] exponent = { 1, 0, 1 };
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
MemoryStream ms = new MemoryStream();
RijndaelManaged rm = new RijndaelManaged();
RSAParameters rsaKeyInfo = new RSAParameters
{
Modulus = publicKey,
Exponent = exponent
};
rsa.ImportParameters(rsaKeyInfo);
byte[] encryptedSymmetricKey = rsa.Encrypt(rm.Key, false);
byte[] encryptedSymmetricIV = rsa.Encrypt(rm.IV, false);
CryptoStream cryptoStream = new CryptoStream(ms, rm.CreateEncryptor(encryptedSymmetricKey, encryptedSymmetricIV), CryptoStreamMode.Write);