HashAlgorithm クラス

暗号ハッシュ アルゴリズムのすべての実装の派生元となる基本クラスを表します。

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

System.Object
   System.Security.Cryptography.HashAlgorithm
      派生クラス

MustInherit Public Class HashAlgorithm
   Implements ICryptoTransform, IDisposable
[C#]
public abstract class HashAlgorithm : ICryptoTransform, IDisposable
[C++]
public __gc __abstract class HashAlgorithm : public
   ICryptoTransform, IDisposable
[JScript]
public abstract class HashAlgorithm implements ICryptoTransform,
   IDisposable

スレッドセーフ

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

解説

ハッシュ関数は現代の暗号化技術の基本です。ハッシュ関数は、任意の長さのバイナリ文字列をハッシュ値と呼ばれる固定長の小さなバイナリ文字列に割り当てます。暗号ハッシュ関数では、同じ値にハッシュされる 2 つの異なる入力値を検出することが計算上不可能です。ハッシュ関数は、一般的に、デジタル署名でデータの整合性を保つために使用されます。

ハッシュは、大量のデータを表す固定サイズの一意の値として使用されます。2 つのデータ セットのハッシュが一致するのは、対応するデータも一致する場合です。データを少し変更しただけでも、ハッシュは予測できないほど大幅に変更されてしまいます。

継承時の注意: このクラスをオーバーライドするときは、 HashCore の実装および HashFinal の実装を指定する必要があります。

使用例

[Visual Basic, C#, C++] 配列の SHA1CryptoServiceProvider ハッシュを計算する例を次に示します。この例では、定義済みのバイト配列 dataArray[] があることを前提にしています。 SHA1CryptoServiceProviderHashAlgorithm の派生クラスです。

 
Dim sha As New SHA1CryptoServiceProvider()
Dim result As Byte() = sha.ComputeHash(dataArray)

[C#] 
HashAlgorithm sha = new SHA1CryptoServiceProvider();
byte[] result = sha.ComputeHash(dataArray);

[C++] 
HashAlgorithm* sha = new SHA1CryptoServiceProvider();
Byte result[] = sha->ComputeHash(dataArray);

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

参照

HashAlgorithm メンバ | System.Security.Cryptography 名前空間 | 暗号サービス