Share via


MACTripleDES クラス

TripleDES を使用して、入力データ CryptoStream の MAC (Message Authentication Code) を計算します。

この型のすべてのメンバの一覧については、MACTripleDES メンバ を参照してください。

System.Object
   System.Security.Cryptography.HashAlgorithm
      System.Security.Cryptography.KeyedHashAlgorithm
         System.Security.Cryptography.MACTripleDES

Public Class MACTripleDES
   Inherits KeyedHashAlgorithm
[C#]
public class MACTripleDES : KeyedHashAlgorithm
[C++]
public __gc class MACTripleDES : public KeyedHashAlgorithm
[JScript]
public class MACTripleDES extends KeyedHashAlgorithm

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

MAC を使用すると、送信者と受信者が共有キーを共有していれば、セキュリティ設定されていないチャネルを通して送信されたメッセージが不正に変更されていないかどうかを確認できます。送信者は元のデータの MAC を計算し、元のデータと MAC の両方を単一のメッセージとして送信します。受信者は受信メッセージの MAC を再計算して、計算した MAC が送信された MAC と一致するかどうかをチェックします。

メッセージの変更や正しい MAC の再生には共有キーが必要なため、データや MAC を少しでも変更すると不一致が発生します。したがって、コードが一致していれば、メッセージが認証されます。

MACTripleDES は、長さが 8、16 または 24 バイトのキーを使用し、長さが 8 バイトのハッシュ シーケンスを生成します。

使用例

[Visual Basic, C#, C++] TripleDES ハッシュ アルゴリズムを使用して data の MAC を計算し、 result に格納する例を次に示します。この例では、定義済みの定数 DATA_SIZE があることを前提にしています。

 
Dim data(DATA_SIZE) As Byte
Dim key(24) As Byte
       
Dim mac3des As New MACTripleDES(key)
       
Dim result As Byte() = mac3des.ComputeHash(data)

[C#] 
byte[] data = new byte[DATA_SIZE];
byte[] key = new byte[24];

MACTripleDES mac3des = new MACTripleDES(key);

byte[] result = mac3des.ComputeHash(data);

[C++] 
Byte data[] = new Byte[DATA_SIZE];
Byte key[] = new Byte[24];

MACTripleDES* mac3des = new MACTripleDES(key);

Byte result[] = mac3des->ComputeHash(data);

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Security.Cryptography

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

MACTripleDES メンバ | System.Security.Cryptography 名前空間