Udostępnij za pośrednictwem


System.Security.Cryptography.RSACryptoServiceProvider, klasa

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

Klasa RSACryptoServiceProvider jest domyślną implementacją klasy RSA.

Program RSACryptoServiceProvider obsługuje rozmiary kluczy z 384 bitów do 16384 bitów w przyrostach 8 bitów, jeśli masz zainstalowanego rozszerzonego dostawcę kryptograficznego firmy Microsoft. Obsługuje ona rozmiary kluczy z 384 bitów do 512 bitów w przyrostach 8 bitów, jeśli masz zainstalowanego podstawowego dostawcę kryptograficznego firmy Microsoft.

Prawidłowe rozmiary kluczy są zależne od dostawcy usług kryptograficznych (CSP), który jest używany przez RSACryptoServiceProvider wystąpienie. Dostawcy CSP systemu Windows włączają rozmiary kluczy od 384 do 16384 bitów dla wersji systemu Windows wcześniejszych niż Windows 8.1 oraz rozmiary kluczy od 512 do 16384 bitów dla systemu Windows 8.1. Aby uzyskać więcej informacji, zobacz funkcję CryptGenKey w dokumentacji systemu Windows.

Współpraca z interfejsem Microsoft Cryptographic API (CAPI)

W przeciwieństwie do implementacji RSA w niezarządzanym interfejsie CAPI RSACryptoServiceProvider klasa odwraca kolejność zaszyfrowanej tablicy bajtów po szyfrowaniu i przed odszyfrowywaniem. Domyślnie dane zaszyfrowane przez klasę RSACryptoServiceProvider nie mogą być odszyfrowywane przez funkcję CAPI CryptDecrypt i dane zaszyfrowane przez metodę CAPI CryptEncrypt nie mogą być odszyfrowywane przez klasę RSACryptoServiceProvider .

Jeśli nie zrekompensowasz odwrotnej kolejności podczas współdziałania między interfejsami API, RSACryptoServiceProvider klasa zgłasza wartość CryptographicException.

Aby współdziałać z funkcją CAPI, należy ręcznie odwrócić kolejność zaszyfrowanych bajtów przed współdziałaniem zaszyfrowanych danych z innym interfejsem API. Można łatwo odwrócić kolejność zarządzanej tablicy bajtów, wywołując metodę Array.Reverse .