Во-первых, я написал код ниже только для академических целей. Причина, по которой я это говорю, заключается в том, что я не помещаю это в производственную среду, и поэтому «обхожу» некоторые накладные расходы, которые мне потребовались бы, если бы я был, мне просто нужно иметь возможность шифровать / дешифровать строку, используя код ниже. Я смог сделать это несколько раз, но по какой-то причине я начал получать «CryptographicException Bad Data» и не уверен, что может быть причиной проблемы.
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.
Есть идеи? Я где-то читал, что это может быть связано с ожидаемым размером encryptedData, который передается в RSA.Decrypt.
Спасибо
}