HashAlgorithm 클래스

정의

모든 암호화 해시 알고리즘의 구현이 파생되어야 하는 기본 클래스를 나타냅니다.Represents the base class from which all implementations of cryptographic hash algorithms must derive.

public ref class HashAlgorithm abstract : 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[]. SHA1CryptoServiceProvider 파생 클래스인 HashAlgorithm합니다.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. 암호화 해시 함수는 동일한 값으로 해시 되는 두 가지 입력을 찾을 수는 것이 불가능 하지는 속성이 있습니다.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. 해당 데이터도 일치 하는 경우 두 개의 데이터 집합의 해시 일치 해야 합니다.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>)
HashFinal()

파생 클래스에서 재정의된 경우 암호화 스트림 개체에서 마지막 데이터를 처리한 후 해시 계산을 완료합니다.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic stream object.

Initialize()

HashAlgorithm 클래스의 구현을 초기화합니다.Initializes an implementation of the HashAlgorithm class.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.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)
TryHashFinal(Span<Byte>, Int32)

명시적 인터페이스 구현

IDisposable.Dispose()

HashAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

적용 대상

추가 정보