HMAC Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |