Compartilhar via


Classe System.Security.Cryptography.RSACryptoServiceProvider

Este artigo fornece comentários complementares à documentação de referência para esta API.

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

O RSACryptoServiceProvider suporta tamanhos de chave de 384 bits a 16384 bits em incrementos de 8 bits, desde que você tenha o Provedor de Criptografia Avançado da Microsoft instalado. Ele dá suporte a tamanhos de chave de 384 bits a 512 bits em incrementos de 8 bits se você tiver o Provedor Criptográfico base da Microsoft instalado.

Os tamanhos de chave válidos dependem do CSP (provedor de serviços criptográfico) 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 Windows 8.1. Para obter mais informações, consulte a função CryptGenKey na documentação do Windows.

Interoperação com a CAPI (API Criptográfica da Microsoft)

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

Se você não compensar a ordenação inversa ao interoperar entre APIs, a RSACryptoServiceProvider classe gerará um CryptographicException.

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