HMAC Classe

Definição

Representa a classe abstrata da qual todas as implementações do Código de Autenticação de Mensagens Baseado em Hash (HMAC) 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

Observações

Um Código de Autenticação de Mensagens Baseado em Hash (HMAC) pode ser usado para determinar se uma mensagem enviada por um canal inseguro foi adulterada, desde que o remetente e o recetor partilhem uma chave secreta. O remetente calcula o valor de hash dos dados originais e envia tanto os dados originais como o HMAC como uma única mensagem. O recetor recalcula o valor de hash da mensagem recebida e verifica se o valor de hash calculado corresponde ao valor de hash transmitido.

O HMAC pode ser usado com qualquer função hash criptográfica iterativa, como MD5 ou SHA-1, em combinação com uma chave secreta partilhada. 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 numa incompatibilidade, porque é necessário conhecer a chave secreta para alterar a mensagem e reproduzir o valor de hash correto. Portanto, se os valores de hash original e calculado coincidirem, a mensagem é 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

Name Description
HMAC()

Inicializa uma nova instância da HMAC classe.

Campos

Name Description
HashSizeValue

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

(Herdado de HashAlgorithm)
HashValue

Representa o valor do código de hash calculado.

(Herdado de HashAlgorithm)
KeyValue

A chave a usar no algoritmo de hash.

(Herdado de KeyedHashAlgorithm)
State

Representa o estado do cálculo do hash.

(Herdado de HashAlgorithm)

Propriedades

Name Description
BlockSizeValue

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

CanReuseTransform

Recebe um valor que indica se a transformada de corrente pode ser reutilizada.

(Herdado de HashAlgorithm)
CanTransformMultipleBlocks

Quando sobrescrito numa classe derivada, obtém um valor que indica se múltiplos blocos podem ser transformados.

(Herdado de HashAlgorithm)
Hash

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

(Herdado de HashAlgorithm)
HashName

Obtém ou define o nome do algoritmo de hash a usar para o hashing.

HashSize

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

(Herdado de HashAlgorithm)
InputBlockSize

Quando sobrescrito numa classe derivada, obtém o tamanho do bloco de entrada.

(Herdado de HashAlgorithm)
Key

Obtém ou define a chave para usar no cálculo do HMAC.

OutputBlockSize

Quando sobrescrito numa classe derivada, obtém o tamanho do bloco de saída.

(Herdado de HashAlgorithm)

Métodos

Name Description
Clear()

Liberta todos os recursos usados pela HashAlgorithm turma.

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

Calcula o valor de hash para a região especificada do array de bytes especificado.

(Herdado de HashAlgorithm)
ComputeHash(Byte[])

Calcula o valor de hash para o array de bytes especificado.

(Herdado de HashAlgorithm)
ComputeHash(Stream)

Calcula o valor de hash para o objeto especificado Stream .

(Herdado de HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

Calcula assíncronamente o valor de hash para o objeto especificado Stream .

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

Cria uma instância da implementação padrão de um Código de Autenticação de Mensagens Baseado em Hash (HMAC).

Create(String)
Obsoleto.

Cria uma instância da implementação especificada de um Código de Autenticação de Mensagens Baseado em Hash (HMAC).

Dispose()

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

(Herdado de HashAlgorithm)
Dispose(Boolean)

Liberta os recursos não geridos usados pela HMAC classe quando uma alteração de chave é legítima e, opcionalmente, liberta os recursos geridos.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

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

Quando sobreposto numa classe derivada, os dados escritos para o objeto são direcionados para o algoritmo HMAC para calcular o valor HMAC.

HashCore(ReadOnlySpan<Byte>)

Encaminha os dados escritos para o objeto para o algoritmo HMAC para calcular o HMAC.

HashFinal()

Quando sobreposto numa classe derivada, finaliza o cálculo HMAC após o último dado ser processado pelo algoritmo.

Initialize()

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

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

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

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

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

Calcula o valor de hash para a região especificada do array de bytes especificado.

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

Tenta calcular o valor de hash para o array de bytes especificado.

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

Tentativas de finalizar o cálculo HMAC após o processamento dos últimos dados pelo algoritmo HMAC.

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Liberta os recursos não geridos usados pelo HashAlgorithm e opcionalmente liberta os recursos geridos.

(Herdado de HashAlgorithm)

Aplica-se a

Ver também