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 の両方を 1 つのメッセージとして送信します。 受信側は、受信したメッセージのハッシュ値を再計算し、計算されたハッシュ値が送信されたハッシュ値と一致することを確認します。

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

指定したバイト配列の指定した領域のハッシュ値を計算します。

(継承元 HashAlgorithm)
ComputeHash(Byte[])

指定したバイト配列のハッシュ値を計算します。

(継承元 HashAlgorithm)
ComputeHash(Stream)

指定した Stream オブジェクトのハッシュ値を計算します。

(継承元 HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

指定した Stream オブジェクトのハッシュ値を非同期的に計算します。

(継承元 HashAlgorithm)
Create()
古い.
古い.

ハッシュ ベースのメッセージ認証コード (HMAC) の既定の実装のインスタンスを作成します。

Create(String)
古い.

ハッシュ ベースのメッセージ認証コード (HMAC) の指定された実装のインスタンスを作成します。

Dispose()

HashAlgorithm クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

(継承元 HashAlgorithm)
Dispose(Boolean)

キーの変更が正当な場合に HMAC クラスによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HashCore(Byte[], Int32, Int32)

派生クラスでオーバーライドされると、オブジェクトに書き込まれたデータが HMAC 値を計算するために HMAC アルゴリズムにルーティングされます。

HashCore(ReadOnlySpan<Byte>)

オブジェクトに書き込まれたデータを HMAC アルゴリズムにルーティングして、HMAC を計算します。

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 計算の最終処理を試みます。

明示的なインターフェイスの実装

名前 説明
IDisposable.Dispose()

HashAlgorithmによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

(継承元 HashAlgorithm)

適用対象

こちらもご覧ください