RSACng 类

定义

提供 RSA 算法的下一代加密技术(CNG)实现。

public ref class RSACng sealed : System::Security::Cryptography::RSA
public sealed class RSACng : System.Security.Cryptography.RSA
type RSACng = class
    inherit RSA
Public NotInheritable Class RSACng
Inherits RSA
继承

注解

RSACng 派生自 RSA 类。 因此,它不能替代 现有用法。RSACryptoServiceProvider

RSACng 使用类似于 ECDsaCng 类而不是 类的 RSACryptoServiceProvider 编程模型。 例如:

  • 使用的 RSACng 密钥由单独的 CngKey 对象管理。 相反, RSACryptoServiceProvider 具有直接绑定到类型本身操作的键。

  • RSACng 使用 对象的属性 RSACng 执行签名和验证签名等操作,就像使用其对象属性来控制签名和验证操作一样 ECDsaCng

注意

RSACng 是使用 Windows CNG 库的 RSA 算法的实现,在 Windows 以外的操作系统上不可用。 对于不执行 Windows 互操作的应用程序,建议使用 RSA.Create 而不是直接引用此类型。

构造函数

RSACng()

使用随机的 2,048 位密钥对初始化 RSACng 类的新实例。

RSACng(CngKey)

使用指定的密钥初始化 RSACng 类的新实例。

RSACng(Int32)

使用具有指定大小的随机生成密钥初始化 RSACng 类的新实例。

字段

KeySizeValue

表示非对称算法所用密钥模块的大小(以位为单位)。

(继承自 AsymmetricAlgorithm)
LegalKeySizesValue

指定非对称算法支持的密钥大小。

(继承自 AsymmetricAlgorithm)

属性

Key

获取将由 RSACng 对象用于它执行的任何加密操作的密钥。

KeyExchangeAlgorithm

获取可用于该 RSA 的实现的密钥交换算法的名称。

KeyExchangeAlgorithm

获取可用于 RSA 的此实现的密钥交换算法的名称。

(继承自 RSA)
KeySize

获取或设置非对称算法所用密钥模块的大小(以位为单位)。

(继承自 AsymmetricAlgorithm)
LegalKeySizes

获取此 RSA 实现支持的密钥大小(以位为单位)。

LegalKeySizes

获取非对称算法支持的密钥大小。

(继承自 AsymmetricAlgorithm)
SignatureAlgorithm

获取可用于该 RSA 的实现的签名算法的名称。

SignatureAlgorithm

获取可用于此 RSA 的实现的签名算法的名称。

(继承自 RSA)

方法

Clear()

释放 AsymmetricAlgorithm 类使用的所有资源。

(继承自 AsymmetricAlgorithm)
Decrypt(Byte[], RSAEncryptionPadding)

使用指定填充模式对输入数据解密。

Decrypt(ReadOnlySpan<Byte>, RSAEncryptionPadding)

使用指定的填充模式对输入数据进行解密。

(继承自 RSA)
Decrypt(ReadOnlySpan<Byte>, Span<Byte>, RSAEncryptionPadding)

使用指定的填充模式对输入数据进行解密。

(继承自 RSA)
DecryptValue(Byte[])

使用私钥对输入数据进行解密。

DecryptValue(Byte[])
已过时.

当在派生类中重写时,使用私钥解密输入数据。

(继承自 RSA)
Dispose()

释放 AsymmetricAlgorithm 类的当前实例所使用的所有资源。

(继承自 AsymmetricAlgorithm)
Dispose(Boolean)

释放 AsymmetricAlgorithm 类使用的非托管资源,并可以选择释放托管资源。

(继承自 AsymmetricAlgorithm)
Encrypt(Byte[], RSAEncryptionPadding)

使用指定的填充方式对输入数据进行加密。

Encrypt(ReadOnlySpan<Byte>, RSAEncryptionPadding)

使用指定的填充模式对输入数据进行加密。

(继承自 RSA)
Encrypt(ReadOnlySpan<Byte>, Span<Byte>, RSAEncryptionPadding)

使用指定的填充模式对输入数据进行加密。

(继承自 RSA)
EncryptValue(Byte[])

使用公钥对输入数据进行加密。

EncryptValue(Byte[])
已过时.

当在派生类中重写时,使用公钥加密输入数据。

(继承自 RSA)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

使用基于字节的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式导出当前密钥。

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

使用基于字节的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式导出当前密钥。

(继承自 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

使用基于字符的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式导出当前密钥。

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

使用基于字符的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式导出当前密钥。

(继承自 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

使用基于字节的密码(PEM 编码)导出 PKCS#8 EncryptedPrivateKeyInfo 格式的当前密钥。

(继承自 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters)

使用基于字符的密码(PEM 编码)导出 PKCS#8 EncryptedPrivateKeyInfo 格式的当前密钥。

(继承自 AsymmetricAlgorithm)
ExportParameters(Boolean)

将 RSA 对象使用的密钥导出到 RSAParameters 对象中。

ExportPkcs8PrivateKey()

以 PKCS#8 PrivateKeyInfo 格式导出当前密钥。

(继承自 AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

导出 PKCS#8 PrivateKeyInfo 格式(PEM 编码)的当前密钥。

(继承自 AsymmetricAlgorithm)
ExportRSAPrivateKey()

以 PKCS#1 RSAPrivateKey 格式导出当前密钥。

(继承自 RSA)
ExportRSAPrivateKeyPem()

以 PKCS#1 RSAPrivateKey 格式导出当前密钥,PEM 编码。

(继承自 RSA)
ExportRSAPublicKey()

以 PKCS#1 RSAPublicKey 格式导出当前密钥的公钥部分。

(继承自 RSA)
ExportRSAPublicKeyPem()

以 PKCS#1 RSAPublicKey 格式导出当前密钥的公钥部分,PEM 编码。

(继承自 RSA)
ExportSubjectPublicKeyInfo()

以 X.509 SubjectPublicKeyInfo 格式导出当前密钥的公钥部分。

(继承自 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

以 X.509 SubjectPublicKeyInfo 格式(PEM 编码)导出当前密钥的公钥部分。

(继承自 AsymmetricAlgorithm)
FromXmlString(String)

通过 XML 字符串中的密钥信息初始化 RSA 对象。

(继承自 RSA)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetMaxOutputSize()

获取 RSA 操作可以生成的最大字节数。

(继承自 RSA)
GetType()

获取当前实例的 Type

(继承自 Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

在派生类中被重写时,使用指定的哈希算法计算字节数组指定部分的哈希值。

(继承自 RSA)
HashData(Stream, HashAlgorithmName)

在派生类中被重写时,使用指定的哈希算法计算指定的二进制流的哈希值。

(继承自 RSA)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

使用基于字节的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

使用基于字节的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

(继承自 RSA)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

使用基于字符的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

使用基于字符的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

(继承自 RSA)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

导入已加密的 RFC 7468 PEM 编码的私钥,替换此对象的密钥。

(继承自 RSA)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

导入已加密的 RFC 7468 PEM 编码的私钥,替换此对象的密钥。

(继承自 RSA)
ImportFromPem(ReadOnlySpan<Char>)

导入 RFC 7468 PEM 编码的密钥,替换此对象的密钥。

(继承自 RSA)
ImportParameters(RSAParameters)

通过创建为参数结构创建新的 CngKey,来替换当前实例使用的现有密钥。

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

解密后,从 PKCS#8 PrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

解密后,从 PKCS#8 PrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

(继承自 RSA)
ImportRSAPrivateKey(ReadOnlySpan<Byte>, Int32)

解密后,从 PKCS#1 RSAPrivateKey 结构中导入公共/私有密钥对,以便替换此对象的密钥。

(继承自 RSA)
ImportRSAPublicKey(ReadOnlySpan<Byte>, Int32)

解密后,从 PKCS#1 RSAPublicKey 结构中导入公钥,以便替换此对象的密钥。

(继承自 RSA)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

解密后,从 X.509 SubjectPublicKeyInfo 结构中导入公钥,以替换此对象的密钥。

(继承自 RSA)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
SignData(Byte[], HashAlgorithmName, RSASignaturePadding)

使用指定的哈希算法和填充模式计算指定字节的哈希值,并对生产的哈希值进行签名。

(继承自 RSA)
SignData(Byte[], Int32, Int32, HashAlgorithmName, RSASignaturePadding)

使用指定的哈希算法和填充模式计算指定字节数组部分的哈希值并签名生成的哈希值。

(继承自 RSA)
SignData(ReadOnlySpan<Byte>, HashAlgorithmName, RSASignaturePadding)

计算指定数据的哈希值,并对其进行签名。

(继承自 RSA)
SignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, RSASignaturePadding)

使用指定算法计算所提供数据的哈希,并使用当前密钥对哈希进行签名,并将签名写入提供的缓冲区。

(继承自 RSA)
SignData(Stream, HashAlgorithmName, RSASignaturePadding)

使用指定的哈希算法和填充模式计算指定流的哈希值并签名生成的哈希值。

(继承自 RSA)
SignHash(Byte[], HashAlgorithmName, RSASignaturePadding)

对使用指定哈希算法和填充模式进行了哈希处理的数据进行签名。

SignHash(ReadOnlySpan<Byte>, HashAlgorithmName, RSASignaturePadding)

使用指定的填充计算指定的哈希值的签名。

(继承自 RSA)
SignHash(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, RSASignaturePadding)

使用当前密钥对哈希进行签名,并将签名写入提供的缓冲区。

(继承自 RSA)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
ToXmlString(Boolean)

创建并返回包含当前 RSA 对象的密钥的 XML 字符串。

(继承自 RSA)
TryDecrypt(ReadOnlySpan<Byte>, Span<Byte>, RSAEncryptionPadding, Int32)

使用私钥解密数据。

TryDecrypt(ReadOnlySpan<Byte>, Span<Byte>, RSAEncryptionPadding, Int32)

尝试使用指定填充模式对输入数据进行解密,然后将结果写入到提供的缓冲区中。

(继承自 RSA)
TryEncrypt(ReadOnlySpan<Byte>, Span<Byte>, RSAEncryptionPadding, Int32)

使用公钥加密数据。

TryEncrypt(ReadOnlySpan<Byte>, Span<Byte>, RSAEncryptionPadding, Int32)

尝试使用指定的填充模式将输入数据加密存入提供的缓冲区中。

(继承自 RSA)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

尝试使用基于字节的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式将当前密钥导出到所提供的缓冲区。

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

尝试使用基于字节的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式将当前密钥导出到所提供的缓冲区。

(继承自 RSA)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

尝试使用基于字符的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式将当前密钥导入所提供的缓冲区。

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

尝试使用基于字符的密码以 PKCS#8 EncryptedPrivateKeyInfo 格式将当前密钥导入所提供的缓冲区。

(继承自 RSA)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

尝试使用基于字节的密码(PEM 编码)导出 PKCS#8 EncryptedPrivateKeyInfo 格式的当前密钥。

(继承自 AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

使用基于字符的密码(PEM 编码)导出 PKCS#8 EncryptedPrivateKeyInfo 格式的当前密钥。

(继承自 AsymmetricAlgorithm)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

尝试以 PKCS#8 PrivateKeyInfo 格式将当前密钥导出到所提供的缓冲区。

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

尝试以 PKCS#8 PrivateKeyInfo 格式将当前密钥导出到所提供的缓冲区。

(继承自 RSA)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

尝试将 PEM 编码 PKCS#8 PrivateKeyInfo 格式的当前密钥导出到提供的缓冲区中。

(继承自 AsymmetricAlgorithm)
TryExportRSAPrivateKey(Span<Byte>, Int32)

尝试以 PKCS#1 RSAPrivateKey 格式将当前密钥导入所提供的缓冲区。

(继承自 RSA)
TryExportRSAPrivateKeyPem(Span<Char>, Int32)

尝试将 PEM 编码的 PKCS#1 RSAPrivateKey 格式的当前密钥导出到提供的缓冲区中。

(继承自 RSA)
TryExportRSAPublicKey(Span<Byte>, Int32)

尝试以 PKCS#1 RSAPublicKey 格式将当前密钥导入所提供的缓冲区。

(继承自 RSA)
TryExportRSAPublicKeyPem(Span<Char>, Int32)

尝试将 PEM 编码的 PKCS#1 RSAPublicKey 格式的当前密钥导出到提供的缓冲区。

(继承自 RSA)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

尝试以 X.509 SubjectPublicKeyInfo 格式将当前密钥导出到所提供的缓冲区。

(继承自 RSA)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

尝试将 PEM 编码的 X.509 SubjectPublicKeyInfo 格式的当前密钥导出到提供的缓冲区中。

(继承自 AsymmetricAlgorithm)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

尝试使用指定算法计算提供的数据的哈希值,然后将结果写入提供的缓冲区中。

(继承自 RSA)
TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, RSASignaturePadding, Int32)

尝试使用指定的算法对提供的数据进行哈希处理,并使用当前密钥对哈希进行签名,从而将签名写入所提供的缓冲区中。

(继承自 RSA)
TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, RSASignaturePadding, Int32)

尝试使用当前密钥对哈希进行签名,从而将签名写入到提供的缓冲区中。

TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, RSASignaturePadding, Int32)

尝试使用当前密钥对哈希进行签名,从而将签名写入到提供的缓冲区中。

(继承自 RSA)
VerifyData(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

通过使用指定的哈希算法和填充方式计算指定数据的哈希值,然后将其与提供的签名进行比较来验证数字签名是否有效。

(继承自 RSA)
VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName, RSASignaturePadding)

通过使用指定的哈希算法和填充模式计算字节数组某部分中数据的哈希值,并将其与所提供的签名进行比较,以此验证数字签名是否有效。

(继承自 RSA)
VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, RSASignaturePadding)

通过使用指定的哈希算法和填充方式计算指定数据的哈希值,然后将其与提供的签名进行比较来验证数字签名是否有效。

(继承自 RSA)
VerifyData(Stream, Byte[], HashAlgorithmName, RSASignaturePadding)

通过使用指定的哈希算法和填充方式计算指定流的哈希值,然后将其与提供的签名进行比较来验证数字签名是否有效。

(继承自 RSA)
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

验证已签名且已使用指定算法和填充模式进行哈希处理的数据。

VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, RSASignaturePadding)

通过使用指定的哈希算法和填充方式计算签名中的哈希值,然后将其与提供的哈希值进行比较来验证数字签名是否有效。

VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, RSASignaturePadding)

通过使用指定的哈希算法和填充方式计算签名中的哈希值,然后将其与提供的哈希值进行比较来验证数字签名是否有效。

(继承自 RSA)

适用于