DSA 類別

定義

表示抽象基底類別,數位簽章演算法 (DSA) 的所有實作都必須從它繼承。

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

備註

您可以使用 DSA 類別和衍生類別來建立數位簽章,以協助保護資料的完整性。 提供 DSACryptoServiceProvider 這個類別的實作。

若要使用公開金鑰系統以數位方式簽署訊息,寄件者會先將雜湊函式套用至訊息,以建立訊息摘要。 然後,傳送者會使用寄件者的私密金鑰來加密訊息摘要,以建立寄件者的個人簽章。 收到訊息和簽章時,接收者會使用寄件者的公開金鑰解密簽章,以復原訊息摘要,並使用傳送者所使用的相同雜湊演算法來雜湊訊息。 如果接收者計算的訊息摘要完全符合寄件者收到的訊息摘要,則接收者可以假設訊息在傳輸時未改變。 請注意,任何人都可以驗證簽章,因為寄件者的公開金鑰是常見的知識。

重要

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[])

在衍生類別中覆寫時,會建立指定雜湊值的 DSA 簽章。

CreateSignature(Byte[], DSASignatureFormat)

以指定的格式建立指定雜湊值的 DSA 簽章。

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

以指定的格式建立指定雜湊值的 DSA 簽章。

Dispose()

釋放 AsymmetricAlgorithm 類別目前的執行個體所使用的全部資源。

(繼承來源 AsymmetricAlgorithm)
Dispose(Boolean)

釋放 AsymmetricAlgorithm 類別所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 AsymmetricAlgorithm)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

使用位元組型密碼以 PKCS#8 EncryptedPrivateKeyInfo 格式匯出目前金鑰。

(繼承來源 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

使用 Char 型密碼以 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)

從 XML 字串重新建構 DSA 物件。

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)

使用 Char 型密碼解密之後,從 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<Byte>)

在衍生類別中覆寫時,匯入 RFC 7468 PEM 編碼的加密金鑰,並取代這個物件的金鑰。

(繼承來源 AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

匯入 RFC 7468 PEM 編碼的加密私密金鑰,並取代這個物件的金鑰。

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

在衍生類別中覆寫時,匯入 RFC 7468 PEM 編碼的加密金鑰,並取代這個物件的金鑰。

(繼承來源 AsymmetricAlgorithm)
ImportFromPem(ReadOnlySpan<Char>)

匯入 RFC 7468 PEM 編碼的金鑰,並取代這個物件的金鑰。

ImportFromPem(ReadOnlySpan<Char>)

在衍生類別中覆寫時,匯入 RFC 7468文字編碼的金鑰,並取代這個物件的金鑰。

(繼承來源 AsymmetricAlgorithm)
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)

使用指定的雜湊演算法,並簽署產生的雜湊值,來為指定的位元組陣列計算出雜湊值。

SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

計算指定資料的雜湊值,並使用指定的簽章格式加以簽署。

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

使用指定的雜湊演算法,並簽署產生的雜湊值,來為指定的部分位元組陣列計算出雜湊值。

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

計算指定資料的雜湊值,並使用指定的簽章格式加以簽署。

SignData(Stream, HashAlgorithmName)

使用指定的雜湊演算法,並簽署產生的雜湊值,來為指定的資料流計算出雜湊值。

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

計算指定資料的雜湊值,並使用指定的簽章格式加以簽署。

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)

使用 Char 型密碼,嘗試以 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)

使用指定的雜湊演算法,並和提供的簽章比較,來為指定的資料計算出雜湊值,藉此驗證數位簽章是否有效。

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

驗證數位簽章對提供的資料是否有效。

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

使用指定的雜湊演算法,並和提供的簽章比較,來為指定的部分位元組陣列計算出資料的雜湊值,便藉此驗證數位簽章是否有效。

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

驗證數位簽章對提供的資料是否有效。

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

使用指定的雜湊演算法,並和提供的簽章比較,來為位元組範圍中的資料計算出雜湊值,藉此驗證數位簽章是否有效。

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

驗證數位簽章對提供的資料是否有效。

VerifyData(Stream, Byte[], HashAlgorithmName)

使用指定的雜湊演算法,並和提供的簽章比較,來為指定的資料流計算出雜湊值,藉此驗證數位簽章是否有效。

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

驗證數位簽章對提供的資料是否有效。

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

驗證數位簽章對提供的資料是否有效。

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

驗證數位簽章對提供的資料是否有效。

VerifySignature(Byte[], Byte[])

在衍生類別中覆寫時,驗證所指定資料的 DSA 簽章。

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

驗證數位簽章對提供的雜湊是否有效。

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

驗證數位簽章對提供的資料雜湊是否有效。

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

驗證數位簽章對提供的雜湊是否有效。

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

驗證數位簽章對提供的雜湊是否有效。

明確介面實作

IDisposable.Dispose()

此 API 支援此產品基礎結構,但無法直接用於程式碼之中。

如需這個成員的說明,請參閱 Dispose()

(繼承來源 AsymmetricAlgorithm)

適用於

另請參閱