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

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

(継承元 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 クラスによって使用されているアンマネージド リソースを解放します。また、オプションとして、マネージド リソースを解放することもできます。

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 によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 HashAlgorithm)

適用対象

こちらもご覧ください