Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Класс RSACryptoServiceProvider является реализацией RSAпо умолчанию.
RSACryptoServiceProvider поддерживает размеры ключей от 384 до 16384 бит с шагом в 8 бит, если у вас установлен расширенный криптографический провайдер Microsoft. Он поддерживает размеры ключей от 384 до 512 бит с шагом по 8 бит, если у вас установлен поставщик базового шифрования Microsoft.
Допустимые размеры ключей зависят от поставщика служб шифрования (CSP), используемого экземпляром RSACryptoServiceProvider . Поставщики услуг криптографии Windows позволяют использовать размеры ключей от 384 до 16384 бит для предыдущих версий Windows до 8.1, а размеры ключей от 512 до 16384 бит для Windows 8.1. Дополнительные сведения см. в разделе функции CryptGenKey в документации по Windows.
Взаимодействие с API шифрования Майкрософт (CAPI)
В отличие от реализации RSA в неуправляемом CAPI, RSACryptoServiceProvider класс изменяет порядок зашифрованного массива байтов после шифрования и перед расшифровкой. По умолчанию данные, зашифрованные RSACryptoServiceProvider классом, не могут быть расшифрованы функцией CAPI CryptDecrypt и данными, зашифрованными методом CAPI CryptEncrypt , не могут быть расшифрованы классом RSACryptoServiceProvider .
Если вы не компенсируете обратное упорядочение при взаимодействии между API, класс RSACryptoServiceProvider выбрасывает исключение CryptographicException.
Чтобы взаимодействовать с CAPI, необходимо вручную изменить порядок зашифрованных байтов, прежде чем зашифрованные данные взаимодействуют с другим API. Можно легко изменить порядок управляемого массива байтов, вызвав Array.Reverse метод.