Compartilhar via


HMAC Classe

Definição

Representa a classe abstrata da qual todas as implementações de HMAC (Hash-based Message Authentication Code) devem derivar.

public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
type HMAC = class
    inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMAC = class
    inherit KeyedHashAlgorithm
Public MustInherit Class HMAC
Inherits KeyedHashAlgorithm
Herança
Derivado
Atributos

Comentários

Um HMAC (Código de Autenticação de Mensagem) baseado em hash pode ser usado para determinar se uma mensagem enviada por um canal inseguro foi adulterada, desde que o remetente e o receptor compartilhem uma chave secreta. O remetente calcula o valor de hash para os dados originais e envia os dados originais e o HMAC como uma única mensagem. O receptor recompõe o valor de hash na mensagem recebida e verifica se o valor de hash computado corresponde ao valor de hash transmitido.

O HMAC pode ser usado com qualquer função de hash criptográfica iterativa, como MD5 ou SHA-1, em combinação com uma chave compartilhada secreta. A força criptográfica do HMAC depende das propriedades da função de hash subjacente.

Qualquer alteração nos dados ou no valor de hash resulta em uma incompatibilidade, pois o conhecimento da chave secreta é necessário para alterar a mensagem e reproduzir o valor de hash correto. Portanto, se os valores de hash originais e computados corresponderem, a mensagem será autenticada.

Devido a problemas de colisão com MD5 e SHA-1, a Microsoft recomenda um modelo de segurança baseado no SHA-256 ou superior.

Construtores

HMAC()

Inicializa uma nova instância da classe HMAC.

Campos

HashSizeValue

Representa o tamanho, em bits, do código hash calculado.

(Herdado de HashAlgorithm)
HashValue

Representa o valor do código hash computado.

(Herdado de HashAlgorithm)
KeyValue

A chave a ser usada no algoritmo de hash.

(Herdado de KeyedHashAlgorithm)
State

Representa o estado do cálculo de hash.

(Herdado de HashAlgorithm)

Propriedades

BlockSizeValue

Obtém ou define o tamanho do bloco a ser usado no valor de hash.

CanReuseTransform

Obtém um valor que indica se a transformação atual pode ser reutilizada.

(Herdado de HashAlgorithm)
CanTransformMultipleBlocks

Quando substituído em uma classe derivada, obtém um valor que indica se vários blocos podem ser transformados.

(Herdado de HashAlgorithm)
Hash

Obtém o valor do código hash computado.

(Herdado de HashAlgorithm)
HashName

Obtém ou define o nome do algoritmo de hash a ser usado para hash.

HashSize

Obtém o tamanho, em bits, do código hash computado.

(Herdado de HashAlgorithm)
InputBlockSize

Quando substituído em uma classe derivada, obtém o tamanho do bloco de entrada.

(Herdado de HashAlgorithm)
Key

Obtém ou define a chave a ser usada no algoritmo HMAC.

OutputBlockSize

Quando substituído em uma classe derivada, obtém o tamanho do bloco de saída.

(Herdado de HashAlgorithm)

Métodos

Clear()

Libera todos os recursos usados pela classe HashAlgorithm.

(Herdado de HashAlgorithm)
ComputeHash(Byte[])

Calcula o valor do hash da matriz de bytes especificada.

(Herdado de HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Calcula o valor de hash para a região especificada da matriz de bytes especificada.

(Herdado de HashAlgorithm)
ComputeHash(Stream)

Calcula o valor do hash do objeto Stream especificado.

(Herdado de HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

Calcula assincronamente o valor do hash do objeto Stream especificado.

(Herdado de HashAlgorithm)
Create()
Obsoleto.
Obsoleto.

Cria uma instância da implementação padrão de um HMAC (Hash-based Message Authentication Code).

Create(String)
Obsoleto.

Cria uma instância da implementação especificada de um HMAC (Hash-based Message Authentication Code).

Dispose()

Libera todos os recursos usados pela instância atual da classe HashAlgorithm.

(Herdado de HashAlgorithm)
Dispose(Boolean)

Libera os recursos não gerenciados usados pela classe HMAC quando uma alteração de chave é legítima e, opcionalmente, libera os recursos gerenciados.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
HashCore(Byte[], Int32, Int32)

Quando substituído em uma classe derivada, roteia os dados gravados no objeto para o algoritmo HMAC para cálculo do valor de HMAC.

HashCore(ReadOnlySpan<Byte>)

Roteia os dados gravados no objeto para o algoritmo HMAC para cálculo do HMAC.

HashCore(ReadOnlySpan<Byte>)

Roteia os dados gravados no objeto para o algoritmo de hash para cálculo do hash.

(Herdado de HashAlgorithm)
HashFinal()

Quando substituído em uma classe derivada, finaliza o cálculo de HMAC depois que os últimos dados são processados pelo algoritmo.

Initialize()

Inicializa uma nova instância da implementação padrão do HMAC.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Calcula o valor de hash para a região especificada da matriz de bytes de entrada e copia a região especificada da matriz de bytes de entrada para a região especificada da matriz de bytes de saída.

(Herdado de HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Calcula o valor de hash para a região especificada da matriz de bytes especificada.

(Herdado de HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Tenta calcular o valor de hash para a matriz de bytes especificada.

(Herdado de HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

Tenta finalizar o cálculo de HMAC depois que os últimos dados são processados pelo algoritmo HMAC.

TryHashFinal(Span<Byte>, Int32)

Tenta finalizar o cálculo de hash depois que os últimos dados são processados pelo algoritmo de hash.

(Herdado de HashAlgorithm)

Implantações explícitas de interface

IDisposable.Dispose()

Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados.

(Herdado de HashAlgorithm)

Aplica-se a

Confira também