首页 > 解决方案 > 指定的初始化向量 (IV) 与此算法的块大小不匹配(Microsoft 示例)

问题描述

我从这里复制了代码,并更改了一些不重要的内容,现在出现此错误:

指定的初始化向量 (IV) 与此算法的块大小不匹配

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);

(我只添加了CryptoStream

为什么在微软文章中他们加密密钥和 iv 如果然后抛出匹配大小的异常?出于什么目的加密此密钥和 iv,我如何使用此密钥和 iv 加密?

标签: c#encryptioncryptographyrijndaelmanaged

解决方案


推荐阅读