«Неверные данные» CryptographicException

Во-первых, я написал приведенный ниже код только в академических целях. Причина, по которой я говорю это, заключается в том, что я не помещаю это в производственную среду и поэтому «обхожу» некоторые накладные расходы, которые мне пришлось бы делать, если бы я был, мне просто нужно иметь возможность шифровать/дешифровать строку, используя код ниже. Мне удавалось сделать это несколько раз, но по какой-то причине я начал получать «Неверные данные CryptographicException» и не уверен, что может быть причиной проблемы.

   private string RSAEncrypt(string value)
    {
        byte[] encryptedData = Encoding.Unicode.GetBytes(value);

        CspParameters cspParams = new CspParameters();
        cspParams.KeyContainerName = _rsaContainerName;
        using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048,cspParams))
        {
            encryptedData = RSA.Encrypt(encryptedData, false);
            return Convert.ToBase64String(encryptedData);

        }

    }



    private string RSADecrypt(string value)
    {

        byte[] encryptedData = Encoding.Unicode.GetBytes(value);

        CspParameters cspParams = new CspParameters();
        cspParams.KeyContainerName = _rsaContainerName;
        using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048,cspParams))
        { 
            encryptedData = RSA.Decrypt(encryptedData,false);
            return Convert.ToBase64String(encryptedData);

        }
    }

Это исключение генерируется только при вызове RSADecrypt.

Есть идеи? Я где-то читал, что это может быть связано с ожидаемым размером зашифрованных данных, которые передаются в RSA.Decrypt.

Спасибо }

9
задан TheJediCowboy 11 March 2012 в 23:48
поделиться