En primer lugar, solo he escrito el código a continuación con fines académicos. La razón por la que digo esto es porque no estoy poniendo esto en un entorno de producción, y por lo tanto estoy "eludiendo" algunos de los gastos generales que tendría que hacer si fuera así, simplemente necesito poder encriptar/desencriptar una cadena usando el código a continuación. Pude hacerlo un par de veces, pero por alguna razón, comencé a recibir "Datos erróneos de CryptographicException" y no estoy seguro de qué podría estar causando el problema."Bad Data" 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);
}
}
Solo lanza esta excepción en la llamada a RSADecrypt.
¿Alguna idea? Leí en alguna parte que podría tener que ver con el tamaño esperado de encryptedData que se pasa a RSA.Decrypt.
Gracias }
Uh, ¿cómo está pasando las teclas entre los métodos? –