Clase System.Security.Cryptography.RSACryptoServiceProvider
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
La RSACryptoServiceProvider clase es la implementación predeterminada de RSA.
RSACryptoServiceProvider Admite tamaños de clave de 384 bits a 16384 bits en incrementos de 8 bits si tiene instalado el proveedor criptográfico mejorado de Microsoft. Admite tamaños de clave de 384 bits a 512 bits en incrementos de 8 bits si tiene instalado el proveedor criptográfico base de Microsoft.
Los tamaños de clave válidos dependen del proveedor de servicios criptográficos (CSP) que usa la RSACryptoServiceProvider instancia. Los CSP de Windows permiten tamaños de claves de 384 a 16384 bits para versiones de Windows anteriores a Windows 8.1 y tamaños de clave de 512 a 16384 bits para Windows 8.1. Para obtener más información, consulte función CryptGenKey en la documentación de Windows.
Interoperación con la API criptográfica de Microsoft (CAPI)
A diferencia de la implementación rsa en CAPI no administrado, la RSACryptoServiceProvider clase invierte el orden de una matriz cifrada de bytes después del cifrado y antes del descifrado. De forma predeterminada, la función CAPI no puede descifrar los datos cifrados por la RSACryptoServiceProvider clase y los datos cifrados por el método CAPI CryptDecrypt
CryptEncrypt
no se pueden descifrar mediante la RSACryptoServiceProvider clase .
Si no compensa la ordenación inversa al interoperar entre las API, la RSACryptoServiceProvider clase produce una CryptographicExceptionexcepción .
Para interoperar con CAPI, debe invertir manualmente el orden de los bytes cifrados antes de que los datos cifrados interoperan con otra API. Puede invertir fácilmente el orden de una matriz de bytes administrada llamando al Array.Reverse método .