DSA 类

定义

表示数字签名算法(DSA)的所有实现必须继承的抽象基类。

public ref class DSA abstract : System::Security::Cryptography::AsymmetricAlgorithm
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
继承
派生
属性

注解

可以使用 DSA 类和派生类创建数字签名,以帮助保护数据的完整性。 提供 DSACryptoServiceProvider 此类的实现。

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

Important

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

DSA 算法存在两个不同的版本。 FIPS 186-2 中所述的原始形式需要使用 SHA-1 作为哈希算法,并支持从 512 位到 1024 位的密钥长度,增量为 64 位。 FIPS 186-3 中描述了算法的更新版本,它支持使用 SHA-2 系列哈希算法,并添加了对 2048 位密钥和 3072 位密钥的支持。 并非所有此类型的派生实现都支持对 DSA 的 FIPS 186-3 增强功能。 可以通过属性检测 LegalKeySizes 支持。

构造函数

名称 说明
DSA()

初始化 DSA 类的新实例。

字段

名称 说明
KeySizeValue

表示非对称算法使用的键模数的大小(以位为单位)。

(继承自 AsymmetricAlgorithm)
LegalKeySizesValue

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

(继承自 AsymmetricAlgorithm)

属性

名称 说明
KeyExchangeAlgorithm

在派生类中重写时,获取密钥交换算法的名称。 否则,将引发一个 NotImplementedException

(继承自 AsymmetricAlgorithm)
KeySize

获取或设置非对称算法使用的键模数的大小(以位为单位)。

(继承自 AsymmetricAlgorithm)
LegalKeySizes

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

(继承自 AsymmetricAlgorithm)
SignatureAlgorithm

在派生类中实现时,获取签名算法的名称。 否则,始终引发一个 NotImplementedException

(继承自 AsymmetricAlgorithm)

方法

名称 说明
Clear()

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

(继承自 AsymmetricAlgorithm)
Create()

创建用于执行非对称算法的默认加密对象。

Create(DSAParameters)

使用指定的 DSA 密钥参数创建新的临时 DSA 密钥。

Create(Int32)

使用指定的密钥大小创建新的临时 DSA 密钥。

Create(String)
已过时.

创建用于执行非对称算法的指定加密对象。

CreateSignature(Byte[], DSASignatureFormat)

以指示格式为指定的哈希值创建 DSA 签名。

CreateSignature(Byte[])

在派生类中重写时,为指定的哈希值创建 DSA 签名。

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

以指示格式为指定的哈希值创建 DSA 签名。

Dispose()

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

(继承自 AsymmetricAlgorithm)
Dispose(Boolean)

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

(继承自 AsymmetricAlgorithm)
Equals(Object)

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

(继承自 Object)
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)
FromXmlString(String)

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

GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetMaxSignatureSize(DSASignatureFormat)

获取此键以指示格式生成的签名的最大大小(以字节为单位)。

GetType()

获取当前实例的 Type

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

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

HashData(Stream, HashAlgorithmName)

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

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

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

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

在派生类中重写时,使用基于字节的密码解密后,从 PKCS#8 EncryptedPrivateKeyInfo 结构导入公钥/私钥对,替换此对象的密钥。

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

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

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

在派生类中重写时,使用基于字符的密码解密后,从 PKCS#8 EncryptedPrivateKeyInfo 结构导入公钥/私钥对,替换此对象的密钥。

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

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

ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

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

ImportFromPem(ReadOnlySpan<Char>)

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

ImportParameters(DSAParameters)

在派生类中重写时,导入指定的 DSAParameters

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

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

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

在派生类中重写时,在解密后从 PKCS#8 PrivateKeyInfo 结构导入公钥/私钥对,替换此对象的密钥。

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

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

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

在派生类中重写时,在解密后从 X.509 SubjectPublicKeyInfo 结构导入公钥,替换此对象的密钥。

(继承自 AsymmetricAlgorithm)
MemberwiseClone()

创建当前 Object的浅表副本。

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

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

SignData(Byte[], HashAlgorithmName)

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

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

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

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

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

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

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

SignData(Stream, HashAlgorithmName)

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

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

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

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

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

ToString()

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

(继承自 Object)
ToXmlString(Boolean)

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

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

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

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, Int32)

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

TryCreateSignatureCore(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

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

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

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

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

在派生类中重写时,尝试使用基于字节的密码将 PKCS#8 EncryptedPrivateKeyInfo 格式中的当前密钥导出到提供的缓冲区中。

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

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

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

在派生类中重写时,尝试使用基于字符的密码将 PKCS#8 EncryptedPrivateKeyInfo 格式中的当前密钥导出到提供的缓冲区中。

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

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

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

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

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

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

在派生类中重写时,尝试将 X.509 SubjectPublicKeyInfo 格式中的当前密钥导出到提供的缓冲区中。

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

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

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

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

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

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

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

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

TrySignDataCore(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

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

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

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

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

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

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

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

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

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

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

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

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName)

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

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

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

VerifyData(Stream, Byte[], HashAlgorithmName)

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

VerifyDataCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

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

VerifyDataCore(Stream, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

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

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

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

VerifySignature(Byte[], Byte[])

在派生类中重写时,验证 DSA 指定数据的签名。

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

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

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

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

VerifySignatureCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

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

显式接口实现

名称 说明
IDisposable.Dispose()

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

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

(继承自 AsymmetricAlgorithm)

适用于

另请参阅