HMAC 클래스

정의

HMAC(해시 기반 메시지 인증 코드)의 모든 구현이 파생될 추상 클래스를 나타냅니다.Represents the abstract class from which all implementations of Hash-based Message Authentication Code (HMAC) must derive.

public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
type HMAC = class
    inherit KeyedHashAlgorithm
Public MustInherit Class HMAC
Inherits KeyedHashAlgorithm
상속
파생
특성

설명

발신자와 수신자 공유 비밀 키를 안전 하지 않은 채널을 통해 보낸 메시지가 훼손 되었는지 여부를 확인 하는 해시 기반 메시지 인증 코드 (HMAC)를 사용할 수 있습니다.A Hash-based Message Authentication Code (HMAC) can be used to determine whether a message sent over an insecure channel has been tampered with, provided that the sender and receiver share a secret key. 보낸 사람에 게 원본 데이터에 대 한 해시 값을 계산 하 고 단일 메시지로 원래 데이터와 HMAC를 보냅니다.The sender computes the hash value for the original data and sends both the original data and the HMAC as a single message. 수신자는 수신된 된 메시지의 해시 값을 다시 계산 하 고 계산된 된 해시 값은 전송 된 해시 값과 일치 하는지 확인 합니다.The receiver recomputes the hash value on the received message and checks that the computed hash value matches the transmitted hash value.

예: MD5 또는 SHA-1(secure 반복 암호화 해시 함수 공유 비밀 키와 함께에서 사용 하 여 HMAC는 사용할 수 있습니다.HMAC can be used with any iterative cryptographic hash function, such as MD5 or SHA-1, in combination with a secret shared key. HMAC의 암호화 강도 기본 해시 함수의 속성에 따라 달라 집니다.The cryptographic strength of HMAC depends on the properties of the underlying hash function.

데이터 또는 해시 값을 변경한 비밀 키의 지식이 없어도 메시지를 변경 하 고 올바른 해시 값을 다시 만들기 때문에 불일치를 발생 합니다.Any change to the data or the hash value results in a mismatch, because knowledge of the secret key is required to change the message and reproduce the correct hash value. 따라서 원래과 계산 된 해시 값이 일치 하는 경우에 메시지 인증 됩니다.Therefore, if the original and computed hash values match, the message is authenticated.

MD5 및 s h a-1의 충돌 문제 때문에 Microsoft는 SHA-256 이상을 기반으로 하는 보안 모델을 권장 합니다.Due to collision problems with MD5 and SHA-1, Microsoft recommends a security model based on SHA-256 or better.

생성자

HMAC()

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

필드

HashSizeValue

계산된 해시 코드의 크기(비트)를 나타냅니다.Represents the size, in bits, of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
HashValue

계산된 해시 코드의 값을 나타냅니다.Represents the value of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
KeyValue

해시 알고리즘에 사용할 키입니다.The key to use in the hash algorithm.

(다음에서 상속됨 KeyedHashAlgorithm)
State

해시 계산의 상태를 나타냅니다.Represents the state of the hash computation.

(다음에서 상속됨 HashAlgorithm)

속성

BlockSizeValue

해시 값에 사용할 블록 크기를 가져오거나 설정합니다.Gets or sets the block size to use in the hash value.

CanReuseTransform

현재 변형을 다시 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current transform can be reused.

(다음에서 상속됨 HashAlgorithm)
CanTransformMultipleBlocks

파생 클래스에서 재정의된 경우 여러 개의 블록을 변형할 수 있는지 여부를 나타내는 값을 가져옵니다.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

(다음에서 상속됨 HashAlgorithm)
Hash

계산된 해시 코드의 값을 가져옵니다.Gets the value of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
HashName

해시에 사용할 해시 알고리즘의 이름을 가져오거나 설정합니다.Gets or sets the name of the hash algorithm to use for hashing.

HashSize

계산된 해시 코드의 크기(비트 단위)를 가져옵니다.Gets the size, in bits, of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
InputBlockSize

파생 클래스에서 재정의된 경우 입력 블록 크기를 가져옵니다.When overridden in a derived class, gets the input block size.

(다음에서 상속됨 HashAlgorithm)
Key

HMAC 계산에 사용할 키를 가져오거나 설정합니다.Gets or sets the key to use in the HMAC calculation.

OutputBlockSize

파생 클래스에서 재정의된 경우 출력 블록 크기를 가져옵니다.When overridden in a derived class, gets the output block size.

(다음에서 상속됨 HashAlgorithm)

메서드

Clear()

HashAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the HashAlgorithm class.

(다음에서 상속됨 HashAlgorithm)
ComputeHash(Byte[])

지정된 바이트 배열에 대해 해시 값을 계산합니다.Computes the hash value for the specified byte array.

(다음에서 상속됨 HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

지정된 바이트 배열의 지정된 영역에 대해 해시 값을 계산합니다.Computes the hash value for the specified region of the specified byte array.

(다음에서 상속됨 HashAlgorithm)
ComputeHash(Stream)

지정된 Stream 개체에 대해 해시 값을 계산합니다.Computes the hash value for the specified Stream object.

(다음에서 상속됨 HashAlgorithm)
Create()

HMAC(해시 기반 메시지 인증 코드)의 기본 구현 인스턴스를 만듭니다.Creates an instance of the default implementation of a Hash-based Message Authentication Code (HMAC).

Create(String)

HMAC(해시 기반 메시지 인증 코드)의 지정된 구현 인스턴스를 만듭니다.Creates an instance of the specified implementation of a Hash-based Message Authentication Code (HMAC).

Dispose()

HashAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the HashAlgorithm class.

(다음에서 상속됨 HashAlgorithm)
Dispose(Boolean)

키 변경이 허용된 경우 HMAC 클래스에서 사용하는 관리되지 않는 리소스를 해제하고, 필요에 따라 관리되는 리소스를 해제할 수도 있습니다.Releases the unmanaged resources used by the HMAC class when a key change is legitimate 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)

파생 클래스에 재정의된 경우 개체에 쓰인 데이터의 경로를 HMAC 값을 계산할 HMAC 알고리즘에 지정합니다.When overridden in a derived class, routes data written to the object into the HMAC algorithm for computing the HMAC value.

HashCore(ReadOnlySpan<Byte>)

개체에 쓴 데이터를 HMAC를 계산하기 위한 HMAC 알고리즘으로 경로 처리합니다.Routes data written to the object into the HMAC algorithm for computing the HMAC.

HashFinal()

파생 클래스에서 재정의되면 알고리즘에서 마지막 데이터를 처리한 후 HMAC 계산을 종료합니다.When overridden in a derived class, finalizes the HMAC computation after the last data is processed by the algorithm.

Initialize()

HMAC의 기본 구현 인스턴스를 초기화합니다.Initializes an instance of the default implementation of HMAC.

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.

(다음에서 상속됨 HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

지정된 바이트 배열의 지정된 영역에 대해 해시 값을 계산합니다.Computes the hash value for the specified region of the specified byte array.

(다음에서 상속됨 HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

지정된 바이트 배열의 해시 값을 계산하려고 시도합니다.Attempts to compute the hash value for the specified byte array.

(다음에서 상속됨 HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

HMAC 알고리즘에서 마지막 데이터를 처리한 후 HMAC 계산을 완료하려고 시도합니다.Attempts to finalize the HMAC computation after the last data is processed by the HMAC algorithm.

명시적 인터페이스 구현

IDisposable.Dispose()

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

(다음에서 상속됨 HashAlgorithm)

적용 대상

추가 정보