HashAlgorithm クラス

定義

暗号ハッシュ アルゴリズムのすべての実装の派生元となる基本クラスを表します。Represents the base class from which all implementations of cryptographic hash algorithms must derive.

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
継承
HashAlgorithm
派生
属性
実装

次のコード例では、配列の SHA1CryptoServiceProvider ハッシュを計算します。The following code example computes the SHA1CryptoServiceProvider hash for an array. この例では、dataArray[]定義済みのバイト配列があることを前提としています。This example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProviderHashAlgorithmの派生クラスです。SHA1CryptoServiceProvider is a derived class of HashAlgorithm.

HashAlgorithm^ sha = gcnew SHA1CryptoServiceProvider;
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = new SHA1CryptoServiceProvider();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As New SHA1CryptoServiceProvider()
Dim result As Byte() = sha.ComputeHash(dataArray)

注釈

ハッシュ関数は、最新の暗号化の基礎となります。Hash functions are fundamental to modern cryptography. これらの関数は、任意の長さのバイナリ文字列を、ハッシュ値と呼ばれる固定長の小さなバイナリ文字列にマップします。These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. 暗号ハッシュ関数には、同じ値にハッシュされる2つの異なる入力を見つけることができるというプロパティがあります。A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. ハッシュ関数は、データの整合性を確保するために、よくデジタル署名と共に使用されます。Hash functions are commonly used with digital signatures and for data integrity.

ハッシュは、大量のデータを表す固定サイズの一意の値として使用されます。The hash is used as a unique value of fixed size representing a large amount of data. 2つのデータセットのハッシュは、対応するデータも一致する場合に一致する必要があります。Hashes of two sets of data should match if the corresponding data also matches. データに小さな変更を加えると、ハッシュの予測できない変更が大きくなります。Small changes to the data result in large unpredictable changes in the hash.

SHA1 との競合問題のため、Microsoft では SHA256 以上に基づくセキュリティ モデルを推奨しています。Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

注意 (実装者)

HashAlgorithm クラスから継承する場合は、次のメンバーをオーバーライドする必要があります: HashCore(Byte[], Int32, Int32)HashFinal()When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

コンストラクター

HashAlgorithm()

HashAlgorithm クラスの新しいインスタンスを初期化します。Initializes a new instance of the HashAlgorithm class.

フィールド

HashSizeValue

計算されたハッシュ コードのサイズをビット単位で表します。Represents the size, in bits, of the computed hash code.

HashValue

計算されたハッシュ コードの値を表します。Represents the value of the computed hash code.

State

ハッシュ計算の状態を表します。Represents the state of the hash computation.

プロパティ

CanReuseTransform

現在の変換を再利用できるかどうかを示す値を取得します。Gets a value indicating whether the current transform can be reused.

CanTransformMultipleBlocks

派生クラスでオーバーライドされると、複数のブロックを変換できるかどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

Hash

計算されたハッシュ コードの値を取得します。Gets the value of the computed hash code.

HashSize

計算されたハッシュ コードのサイズをビット単位で取得します。Gets the size, in bits, of the computed hash code.

InputBlockSize

派生クラスでオーバーライドされると、入力ブロック サイズを取得します。When overridden in a derived class, gets the input block size.

OutputBlockSize

派生クラスでオーバーライドされると、出力ブロック サイズを取得します。When overridden in a derived class, gets the output block size.

メソッド

Clear()

HashAlgorithm クラスによって使用されているすべてのリソースを解放します。Releases all resources used by the HashAlgorithm class.

ComputeHash(Byte[])

指定したバイト配列のハッシュ値を計算します。Computes the hash value for the specified byte array.

ComputeHash(Byte[], Int32, Int32)

指定したバイト配列の指定した領域のハッシュ値を計算します。Computes the hash value for the specified region of the specified byte array.

ComputeHash(Stream)

指定された Stream オブジェクトのハッシュ値を計算します。Computes the hash value for the specified Stream object.

Create()

ハッシュ アルゴリズムの既定の実装のインスタンスを作成します。Creates an instance of the default implementation of a hash algorithm.

Create(String)

ハッシュ アルゴリズムの指定された実装のインスタンスを作成します。Creates an instance of the specified implementation of a hash algorithm.

Dispose()

HashAlgorithm クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources used by the current instance of the HashAlgorithm class.

Dispose(Boolean)

HashAlgorithm によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

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

派生クラスでオーバーライドされると、ハッシュを計算するために、オブジェクトに書き込まれたデータをハッシュ アルゴリズムにルーティングします。When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

HashCore(ReadOnlySpan<Byte>)

ハッシュを計算するために、オブジェクトに書き込んだデータをハッシュ アルゴリズムにルーティングします。Routes data written to the object into the hash algorithm for computing the hash.

HashFinal()

派生クラスでオーバーライドされると、暗号化ハッシュ アルゴリズムによって最後のデータが処理された後に、ハッシュ計算を終了します。When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm.

Initialize()

ハッシュ アルゴリズムを初期状態にリセットします。Resets the hash algorithm to its initial state.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

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

入力バイト配列の指定した領域のハッシュ値を計算し、入力バイト配列の指定した領域を出力バイト配列の指定した領域にコピーします。Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.

TransformFinalBlock(Byte[], Int32, Int32)

指定したバイト配列の指定した領域のハッシュ値を計算します。Computes the hash value for the specified region of the specified byte array.

TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

指定したバイト配列のハッシュ値の計算を試みます。Attempts to compute the hash value for the specified byte array.

TryHashFinal(Span<Byte>, Int32)

ハッシュ アルゴリズムによって最後のデータが処理された後、ハッシュ計算の終了を試みます。Attempts to finalize the hash computation after the last data is processed by the hash algorithm.

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

IDisposable.Dispose()

HashAlgorithm によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

適用対象

こちらもご覧ください