System.Security.Cryptography.RSACryptoServiceProvider 类

本文提供了此 API 参考文档的补充说明。

RSACryptoServiceProvider类是默认实现 。RSA

如果安装了 Microsoft 增强型加密提供程序,则支持 RSACryptoServiceProvider 密钥大小从 384 位到 16384 位的增量为 8 位。 如果安装了 Microsoft 基础加密提供程序,它支持密钥大小(从 384 位到 512 位)增量为 8 位。

有效的密钥大小取决于实例使用的 RSACryptoServiceProvider 加密服务提供程序(CSP)。 Windows CSP 为 Windows 8.1 之前的 Windows 版本启用 384 到 16384 位的密钥大小,对于 Windows 8.1,密钥大小为 512 到 16384 位。 有关详细信息,请参阅 Windows 文档中的 CryptGenKey 函数。

与 Microsoft 加密 API(CAPI)的互操作

与非托管 CAPI 中的 RSA 实现不同, RSACryptoServiceProvider 类在加密后和解密之前反转加密的字节数组的顺序。 默认情况下,类加密 RSACryptoServiceProvider 的数据不能由 CAPI 函数解密,CAPI CryptDecryptCryptEncrypt 方法加密的数据不能由 RSACryptoServiceProvider 类解密。

如果在 API 之间互操作时不补偿反向排序,则 RSACryptoServiceProvider 类将引发一个 CryptographicException

若要与 CAPI 互操作,必须在加密数据与另一个 API 互操作之前手动反转加密字节的顺序。 通过调用 Array.Reverse 该方法,可以轻松反转托管字节数组的顺序。