HMAC 類別

定義

表示抽象類別,所有的雜湊式訊息驗證碼 (HMAC) 實作均須從這個類別衍生。

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

備註

雜湊型訊息驗證代碼 (HMAC) 可用來判斷透過不安全通道傳送的訊息是否已遭到竄改,前提是傳送者和接收者共用秘密金鑰。 傳送者會計算原始資料的雜湊值,並將原始資料和 HMAC 傳送為單一訊息。 接收者會重新計算所接收訊息上的雜湊值,並檢查計算的雜湊值是否符合傳輸的雜湊值。

HMAC 可與任何反復密碼編譯雜湊函式搭配使用,例如 MD5 或 SHA-1,並搭配秘密共用金鑰使用。 HMAC 的密碼編譯強度取決於基礎雜湊函式的屬性。

對資料或雜湊值所做的任何變更都會導致不符,因為必須知道秘密金鑰才能變更訊息並重現正確的雜湊值。 因此,如果原始和計算的雜湊值相符,則會驗證訊息。

由於 MD5 和 SHA-1 發生衝突問題,Microsoft 建議根據 SHA-256 或更好的安全性模型。

建構函式

HMAC()

初始化 HMAC 類別的新執行個體。

欄位

HashSizeValue

代表計算出來之雜湊碼的大小,以位元為單位。

(繼承來源 HashAlgorithm)
HashValue

表示計算出來的雜湊碼的值。

(繼承來源 HashAlgorithm)
KeyValue

要使用於雜湊演算法的金鑰。

(繼承來源 KeyedHashAlgorithm)
State

表示雜湊計算的狀態。

(繼承來源 HashAlgorithm)

屬性

BlockSizeValue

取得或設定要使用於雜湊值的區塊大小。

CanReuseTransform

取得值,表示目前的轉換是否可重複使用。

(繼承來源 HashAlgorithm)
CanTransformMultipleBlocks

在衍生類別中覆寫時,取得值以指出是否有多個區塊可被轉換。

(繼承來源 HashAlgorithm)
Hash

取得計算出來之雜湊碼的值。

(繼承來源 HashAlgorithm)
HashName

取得或設定用於雜湊的雜湊演算法名稱。

HashSize

取得計算出來之雜湊碼的大小,以位元為單位。

(繼承來源 HashAlgorithm)
InputBlockSize

在衍生類別中覆寫時,取得輸入區塊的大小。

(繼承來源 HashAlgorithm)
Key

取得或設定要在 HMAC 計算中使用的索引鍵。

OutputBlockSize

在衍生類別中覆寫時,取得輸出區塊的大小。

(繼承來源 HashAlgorithm)

方法

Clear()

釋放 HashAlgorithm 類別所使用的所有資源。

(繼承來源 HashAlgorithm)
ComputeHash(Byte[])

計算指定位元組陣列的雜湊值。

(繼承來源 HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

計算所指定位元組陣列中指定區域的雜湊值。

(繼承來源 HashAlgorithm)
ComputeHash(Stream)

計算指定 Stream 物件的雜湊值。

(繼承來源 HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

以非同步方式計算指定 Stream 物件的雜湊值。

(繼承來源 HashAlgorithm)
Create()
已淘汰.
已淘汰.

建立雜湊式訊息驗證碼 (HMAC) 預設實作的執行個體。

Create(String)
已淘汰.

建立雜湊式訊息驗證碼 (HMAC) 之指定實作的執行個體。

Dispose()

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

(繼承來源 HashAlgorithm)
Dispose(Boolean)

如果金鑰變更是合法的,則釋放 HMAC 類別所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
HashCore(Byte[], Int32, Int32)

於衍生類型中覆寫時,將寫入物件的資料路由傳送至用來計算 HMAC 值的 HMAC 演算法。

HashCore(ReadOnlySpan<Byte>)

將寫入物件的資料路由傳送至 HMAC 演算法,以用來計算 HMAC。

HashCore(ReadOnlySpan<Byte>)

將寫入物件的資料路由傳送至雜湊演算法,以用來計算雜湊。

(繼承來源 HashAlgorithm)
HashFinal()

於衍生類型中覆寫時,在演算法處理最後一筆資料後,完成 HMAC 計算。

Initialize()

初始化 HMAC 預設實作的執行個體。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

計算輸入位元組陣列中指定區域的雜湊值,並將指定的輸入位元組陣列區域複製到指定的輸出位元組陣列區域。

(繼承來源 HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

計算所指定位元組陣列中指定區域的雜湊值。

(繼承來源 HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

嘗試計算指定位元組陣列的雜湊值。

(繼承來源 HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

在 HMAC 演算法處理最後一筆資料之後,嘗試完成 HMAC 計算。

TryHashFinal(Span<Byte>, Int32)

在雜湊演算法處理最後一筆資料之後,嘗試完成雜湊計算。

(繼承來源 HashAlgorithm)

明確介面實作

IDisposable.Dispose()

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

(繼承來源 HashAlgorithm)

適用於

另請參閱