System.Security.Cryptography.RSACryptoServiceProvider 類別
本文提供此 API 參考文件的補充備註。
類別 RSACryptoServiceProvider 是的預設實作 RSA。
如果您已安裝 Microsoft Enhanced Cryptographic Provider,則 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 位元組陣列的順序。