Compartilhar via


System.Security.Cryptography.RSACryptoServiceProvider classe

Este artigo fornece observações complementares à documentação de referência para essa API.

A RSACryptoServiceProvider classe é a implementação padrão do RSA.

O RSACryptoServiceProvider suporta tamanhos de chave de 384 bits a 16384 bits em incrementos de 8 bits se você tiver o Microsoft Enhanced Cryptographic Provider instalado. Ele oferece suporte a tamanhos de chave de 384 bits a 512 bits em incrementos de 8 bits se você tiver o Microsoft Base Cryptographic Provider instalado.

Os tamanhos de chave válidos dependem do provedor de serviços de criptografia (CSP) usado pela RSACryptoServiceProvider instância. Os CSPs do Windows permitem tamanhos de chaves de 384 a 16384 bits para versões do Windows anteriores ao Windows 8.1 e tamanhos de chave de 512 a 16384 bits para o Windows 8.1. Para obter mais informações, consulte Função CryptGenKey na documentação do Windows.

Interoperação com a Microsoft Cryptographic API (CAPI)

Ao contrário da implementação RSA em CAPI não gerenciado, a classe inverte a ordem de uma matriz criptografada de bytes após a RSACryptoServiceProvider criptografia e antes da descriptografia. Por padrão, os RSACryptoServiceProvider dados criptografados pela classe não podem ser descriptografados pela função CAPI e os dados criptografados pelo método CAPI CryptDecryptCryptEncrypt não podem ser descriptografados pela RSACryptoServiceProvider classe.

Se você não compensar a ordem inversa ao interoperar entre APIs, a RSACryptoServiceProvider classe lançará um CryptographicExceptionarquivo .

Para interoperar com CAPI, você deve inverter manualmente a ordem dos bytes criptografados antes que os dados criptografados interoperem com outra API. Você pode facilmente inverter a ordem de uma matriz de bytes gerenciada chamando o Array.Reverse método.