HashAlgorithm Class

Definition

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

public ref class HashAlgorithm abstract : IDisposable, System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public abstract class HashAlgorithm : IDisposable, System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : IDisposable
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
type HashAlgorithm = class
    interface IDisposable
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform, IDisposable
Public MustInherit Class HashAlgorithm
Implements IDisposable
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Inheritance
HashAlgorithm
Derived
Attributes
Implements

Examples

다음 코드 예제에서는 배열에 대 한 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)

Remarks

해시 함수는 최신 암호화에 기본적인 요소입니다.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.

Notes to Implementers

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().

Constructors

HashAlgorithm()

HashAlgorithm 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the HashAlgorithm class.

Fields

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.

Properties

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.

Methods

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.

ComputeHashAsync(Stream, CancellationToken)
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.

(Inherited from Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from 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.

(Inherited from Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from 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.

Explicit Interface Implementations

IDisposable.Dispose()

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

Applies to

See also