本文提供此 API 參考文件的補充備註。
類別 RSACryptoServiceProvider 是的預設實作 RSA。
如果您已安裝微軟增強型加密提供者,則 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)
不同於 Unmanaged CAPI 中的 RSA 實作,類別 RSACryptoServiceProvider 會在加密之後和解密之前反轉加密的位元組陣列順序。 根據預設,由類別加密 RSACryptoServiceProvider 的數據無法由 CAPI CryptDecrypt 函式解密,而由 CAPI CryptEncrypt 方法加密的數據則無法由 RSACryptoServiceProvider 類別解密。
如果您在 API 之間互通時未處理反向順序,類別RSACryptoServiceProvider 會擲回CryptographicException。
若要與 CAPI 互通,您必須在加密的數據與另一個 API 互通之前,手動反轉加密位元組的順序。 您可以藉由呼叫 Array.Reverse 方法,輕鬆地反轉 Managed 位元組陣列的順序。