信息
您所需的主题如下所示。但此主题未包含在此库中。

RSACryptoServiceProvider 类

2013/12/13

使用加密服务提供程序 (CSP) 提供的 RSA 算法的实现执行不对称加密和解密。无法继承此类。

System.Object
  System.Security.Cryptography.AsymmetricAlgorithm
    System.Security.Cryptography.RSA
      System.Security.Cryptography.RSACryptoServiceProvider

Namespace:  System.Security.Cryptography
程序集:  mscorlib(位于 mscorlib.dll 中)

public sealed class RSACryptoServiceProvider : RSA, 
	ICspAsymmetricAlgorithm

RSACryptoServiceProvider 类型公开以下成员。

  名称说明
公共方法RSACryptoServiceProvider()使用默认密钥初始化 RSACryptoServiceProvider 类的新实例。
公共方法RSACryptoServiceProvider(CspParameters)使用指定的参数初始化 RSACryptoServiceProvider 类的新实例。
公共方法RSACryptoServiceProvider(Int32)使用指定的密钥大小初始化 RSACryptoServiceProvider 类的新实例。
公共方法RSACryptoServiceProvider(Int32, CspParameters)使用指定的密钥大小和参数初始化 RSACryptoServiceProvider 类的新实例。
返回顶部

  名称说明
公共属性CspKeyContainerInfo获取描述有关加密密钥对的附加信息的 CspKeyContainerInfo 对象。
公共属性KeyExchangeAlgorithm获取 RSA 的这一实现中可用的密钥交换算法的名称。 (重写 AsymmetricAlgorithm.KeyExchangeAlgorithm。)
公共属性KeySize获取当前密钥的大小。 (重写 AsymmetricAlgorithm.KeySize。)
公共属性LegalKeySizes获取不对称算法支持的密钥大小。 (从 AsymmetricAlgorithm 继承。)
公共属性PersistKeyInCsp获取或设置一个值,该值指示密钥是否应该永久驻留在加密服务提供程序 (CSP) 中。
公共属性PublicOnly获取一个值,该值指示 RSACryptoServiceProvider 对象是否仅包含一个公钥。
公共属性SignatureAlgorithm获取 RSA 的这一实现中可用的签名算法的名称。 (重写 AsymmetricAlgorithm.SignatureAlgorithm。)
公共属性静态成员UseMachineKeyStore获取或设置一个值,该值指示密钥是否应保持在计算机的密钥存储区中(而不是保持在用户配置文件存储区中)。
返回顶部

  名称说明
公共方法Clear释放由 AsymmetricAlgorithm 类使用的所有资源。 (从 AsymmetricAlgorithm 继承。)
公共方法Decrypt使用 RSA 算法对数据进行解密。
公共方法DecryptValue在当前版本中不支持此方法。 (重写 RSA.DecryptValue(Byte[])。)
公共方法Dispose()释放由 AsymmetricAlgorithm 类的当前实例占用的所有资源。 (从 AsymmetricAlgorithm 继承。)
受保护的方法Dispose(Boolean)释放 AsymmetricAlgorithm 类使用的非托管资源,并可以选择释放托管资源。 (从 AsymmetricAlgorithm 继承。)
公共方法Encrypt使用 RSA 算法对数据进行加密。
公共方法EncryptValue在当前版本中不支持此方法。 (重写 RSA.EncryptValue(Byte[])。)
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
公共方法ExportCspBlob安全非常关键。 导出包含与 RSACryptoServiceProvider 对象关联的密钥信息的 Blob。
公共方法ExportParameters导出 RSAParameters (重写 RSA.ExportParameters(Boolean)。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法FromXmlString通过 XML 字符串中的密钥信息初始化 RSA 对象。 (从 RSA 继承。)
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法ImportCspBlob安全非常关键。 导入一个表示 RSA 密钥信息的 Blob。
公共方法ImportParameters导入指定的 RSAParameters (重写 RSA.ImportParameters(RSAParameters)。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法SignData(Byte[], Object)使用指定的哈希算法计算指定字节数组的哈希值,并对计算所得的哈希值签名。
公共方法SignData(Stream, Object)使用指定的哈希算法计算指定输入流的哈希值,并对计算所得的哈希值签名。
公共方法SignData(Byte[], Int32, Int32, Object)使用指定的哈希算法计算指定字节数组子集的哈希值,并对结果哈希值签名。
公共方法SignHash通过用私钥对其进行加密来计算指定哈希值的签名。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
公共方法ToXmlString创建并返回包含当前 RSA 对象的密钥的 XML 字符串。 (从 RSA 继承。)
公共方法VerifyData通过使用提供的公钥确定签名中的哈希值并将其与所提供数据的哈希值进行比较验证数字签名是否有效。
公共方法VerifyHash通过使用提供的公钥确定签名中的哈希值并将其与提供的哈希值进行比较验证数字签名是否有效。
返回顶部

  名称说明
受保护的字段KeySizeValue表示不对称算法所用密钥模块的大小(以位为单位)。 (从 AsymmetricAlgorithm 继承。)
受保护的字段LegalKeySizesValue指定不对称算法支持的密钥大小。 (从 AsymmetricAlgorithm 继承。)
返回顶部

这是 RSA 的默认实现。

 在 Windows Phone 中,RSACryptoServiceProvider 支持的密钥长度为从 384 位到 4800 位,以 8 位递增。

同 Microsoft Cryptographic API (CAPI) 相互操作

与非托管 CAPI 中的 RSA 实现不同的是,RSACryptoServiceProvider 类会在加密之后、解密之前颠倒被加密数组的字节顺序。默认情况下,CAPI CryptDecrypt 函数无法解密由 RSACryptoServiceProvider 类加密的数据,RSACryptoServiceProvider 类无法解密由 CAPI CryptEncrypt 方法加密的数据。

如果在 API 之间互相操作时没有对颠倒的顺序进行补偿,RSACryptoServiceProvider 类会引发 CryptographicException

要同 CAPI 相互操作,必须在加密数据与其他 API 相互操作之前,手动颠倒加密字节的顺序。通过调用 Array.Reverse 方法可轻松颠倒托管字节数组的顺序。

Windows Phone OS

受以下版本支持: 8.0, 7.1

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

显示: