DSACryptoServiceProvider 类

定义

定义访问 DSA 算法的加密服务提供程序 (CSP) 实现的包装对象。 此类不能被继承。

public ref class DSACryptoServiceProvider sealed : System::Security::Cryptography::DSA, System::Security::Cryptography::ICspAsymmetricAlgorithm
public ref class DSACryptoServiceProvider sealed : System::Security::Cryptography::DSA
public sealed class DSACryptoServiceProvider : System.Security.Cryptography.DSA, System.Security.Cryptography.ICspAsymmetricAlgorithm
public sealed class DSACryptoServiceProvider : System.Security.Cryptography.DSA
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DSACryptoServiceProvider : System.Security.Cryptography.DSA, System.Security.Cryptography.ICspAsymmetricAlgorithm
type DSACryptoServiceProvider = class
    inherit DSA
    interface ICspAsymmetricAlgorithm
type DSACryptoServiceProvider = class
    inherit DSA
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSACryptoServiceProvider = class
    inherit DSA
    interface ICspAsymmetricAlgorithm
Public NotInheritable Class DSACryptoServiceProvider
Inherits DSA
Implements ICspAsymmetricAlgorithm
Public NotInheritable Class DSACryptoServiceProvider
Inherits DSA
继承
DSACryptoServiceProvider
属性
实现

注解

可以使用 DSACryptoServiceProvider 类创建数字签名并保护数据的完整性。

若要使用公钥系统对消息进行数字签名,发送方首先对消息应用哈希函数以创建消息摘要。 然后,发送方使用发件人的私钥加密消息摘要,以创建发件人的个人签名。 收到消息和签名后,接收方使用发送方的公钥解密签名,以恢复消息摘要,并使用发送方使用的相同哈希算法对消息进行哈希处理。 如果接收方计算的消息摘要与从发送方接收的消息摘要完全匹配,则接收方可以确保消息在传输过程中未发生更改。 请注意,任何人都可以验证签名,因为发送方的公钥是常识。

备注

DSA 算法的创建者已经撤回了对它的支持。 请考虑使用 RSACryptoServiceProvider 类而不是 DSACryptoServiceProvider 类。 仅用于 DSACryptoServiceProvider 与旧应用程序和数据的兼容性。

此算法支持从 512 位到 1024 位的密钥长度,增量为 64 位。

构造函数

DSACryptoServiceProvider()

初始化 DSACryptoServiceProvider 类的新实例。

DSACryptoServiceProvider(CspParameters)

用加密服务提供程序 (CSP) 的指定参数初始化 DSACryptoServiceProvider 类的新实例。

DSACryptoServiceProvider(Int32)

使用指定的密钥大小初始化 DSACryptoServiceProvider 类的新实例。

DSACryptoServiceProvider(Int32, CspParameters)

用加密服务提供程序 (CSP) 的指定密钥大小和参数初始化 DSACryptoServiceProvider 类的新实例。

字段

KeySizeValue

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

(继承自 AsymmetricAlgorithm)
LegalKeySizesValue

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

(继承自 AsymmetricAlgorithm)

属性

CspKeyContainerInfo

获取描述有关加密密钥对的附加信息的 CspKeyContainerInfo 对象。

KeyExchangeAlgorithm

获取密钥交换算法的名称。

KeySize

获取不对称算法使用的密钥的大小(以位为单位)。

LegalKeySizes

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

LegalKeySizes

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

(继承自 AsymmetricAlgorithm)
PersistKeyInCsp

获取或设置一个值,该值指示是否应在加密服务提供程序 (CSP) 中保留此密钥。

PublicOnly

获取一个值,该值指示 DSACryptoServiceProvider 对象是否仅包含公钥。

SignatureAlgorithm

获取签名算法的名称。

UseMachineKeyStore

获取或设置一个值,该值指示是否应在计算机的密钥存储而不是用户配置文件存储中保留密钥。

方法

Clear()

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

(继承自 AsymmetricAlgorithm)
CreateSignature(Byte[])

创建指定数据的 DSA 签名。

CreateSignature(Byte[], DSASignatureFormat)

采用指定格式为指定的哈希值创建 DSA 签名。

(继承自 DSA)
CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

采用指定格式为指定的哈希值创建 DSA 签名。

(继承自 DSA)
Dispose()

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

(继承自 AsymmetricAlgorithm)
Dispose(Boolean)

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

(继承自 AsymmetricAlgorithm)
Equals(Object)

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

(继承自 Object)
ExportCspBlob(Boolean)

导出包含与 DSACryptoServiceProvider 对象关联的密钥信息的 Blob。

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

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

(继承自 AsymmetricAlgorithm)
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)

导出 DSAParameters

ExportPkcs8PrivateKey()

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

(继承自 AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

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

(继承自 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

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

(继承自 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

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

(继承自 AsymmetricAlgorithm)
Finalize()

释放与此实例关联的所有资源。

FromXmlString(String)

通过 XML 字符串重新构造 DSA 对象。

(继承自 DSA)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetMaxSignatureSize(DSASignatureFormat)

获取此密钥按指定格式生成的签名的最大尺寸(以字节为单位)。

(继承自 DSA)
GetType()

获取当前实例的 Type

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

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

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

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

(继承自 DSA)
ImportCspBlob(Byte[])

导入一个表示 DSA 密钥信息的 Blob。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(继承自 DSA)
ImportParameters(DSAParameters)

导入指定的 DSAParameters

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

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

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

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

(继承自 DSA)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
SignData(Byte[])

计算指定字节数组的哈希值并对结果哈希值签名。

SignData(Byte[], HashAlgorithmName)

使用指定的哈希算法计算指定字节数组的哈希值,并对生成的哈希值进行签名。

(继承自 DSA)
SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

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

(继承自 DSA)
SignData(Byte[], Int32, Int32)

对字节数组从指定起始点到指定结束点进行签名。

SignData(Byte[], Int32, Int32, HashAlgorithmName)

使用指定的哈希算法计算指定字节数组的一个部分的哈希值,并对生成的哈希值进行签名。

(继承自 DSA)
SignData(Byte[], Int32, Int32, HashAlgorithmName, DSASignatureFormat)

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

(继承自 DSA)
SignData(Stream)

计算指定输入流的哈希值并对结果哈希值签名。

SignData(Stream, HashAlgorithmName)

使用指定的哈希算法计算指定流的哈希值,并对生成的哈希值进行签名。

(继承自 DSA)
SignData(Stream, HashAlgorithmName, DSASignatureFormat)

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

(继承自 DSA)
SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

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

(继承自 DSA)
SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

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

(继承自 DSA)
SignHash(Byte[], String)

计算指定的哈希值的签名,方法是将其与私钥一起加密。

ToString()

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

(继承自 Object)
ToXmlString(Boolean)

创建并返回当前 DSA 对象的 XML 字符串表示形式。

(继承自 DSA)
TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

尝试采用指定格式为指定的哈希值创建 DSA 签名并将其置于提供的缓冲区中。

(继承自 DSA)
TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, Int32)

尝试将指定哈希的 DSA 签名创建到所提供的缓冲区中。

(继承自 DSA)
TryCreateSignatureCore(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

尝试采用指定格式为指定的哈希值创建 DSA 签名并将其置于提供的缓冲区中。

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

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

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

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

(继承自 DSA)
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 格式将当前密钥导出到所提供的缓冲区。

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

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

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

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

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

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

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

尝试将所提供数据的哈希值计算到所提供的缓冲区中。

(继承自 DSA)
TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

尝试采用指定格式为指定的数据创建 DSA 签名并将其置于提供的缓冲区中。

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

尝试将指定数据的 DSA 签名创建到所提供的缓冲区中。

(继承自 DSA)
TrySignDataCore(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

尝试采用指定格式为指定的数据创建 DSA 签名并将其置于提供的缓冲区中。

(继承自 DSA)
VerifyData(Byte[], Byte[])

通过将指定的签名数据与为指定数据计算的签名进行比较来验证指定的签名数据。

VerifyData(Byte[], Byte[], HashAlgorithmName)

通过使用指定的哈希算法计算指定数据的哈希值,并将其与提供的签名进行比较,验证数字签名是否有效。

(继承自 DSA)
VerifyData(Byte[], Byte[], HashAlgorithmName, DSASignatureFormat)

验证数字签名对于所提供的数据是否有效。

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

通过使用指定的哈希算法计算字节数组一个部分中数据的哈希值,并将其与提供的签名进行比较,验证数字签名是否有效。

(继承自 DSA)
VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName, DSASignatureFormat)

验证数字签名对于所提供的数据是否有效。

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

通过使用指定的哈希算法计算某字节范围内数据的哈希值,并将其与提供的签名进行比较,验证数字签名是否有效。

(继承自 DSA)
VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

验证数字签名对于所提供的数据是否有效。

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

通过使用指定的哈希算法计算指定流的哈希值,并将其与提供的签名进行比较,验证数字签名是否有效。

(继承自 DSA)
VerifyData(Stream, Byte[], HashAlgorithmName, DSASignatureFormat)

验证数字签名对于所提供的数据是否有效。

(继承自 DSA)
VerifyDataCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

验证数字签名对于所提供的数据是否有效。

(继承自 DSA)
VerifyDataCore(Stream, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

验证数字签名对于所提供的数据是否有效。

(继承自 DSA)
VerifyHash(Byte[], String, Byte[])

通过将指定的签名数据与为指定哈希值计算的签名进行比较来验证指定的签名数据。

VerifySignature(Byte[], Byte[])

验证指定数据的 DSA 签名。

VerifySignature(Byte[], Byte[], DSASignatureFormat)

验证数字签名对于所提供的哈希是否有效。

(继承自 DSA)
VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

验证数字签名对于所提供的数据哈希是否有效。

(继承自 DSA)
VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

验证数字签名对于所提供的哈希是否有效。

(继承自 DSA)
VerifySignatureCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

验证数字签名对于所提供的哈希是否有效。

(继承自 DSA)

显式接口实现

IDisposable.Dispose()

此 API 支持产品基础结构,不能在代码中直接使用。

有关此成员的说明,请参见 Dispose()

(继承自 AsymmetricAlgorithm)

适用于

另请参阅