HMAC Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa a classe abstrata da qual todas as implementações do HMAC (Código de Autenticação de Mensagem baseado em Hash) devem derivar.
public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMAC = class
inherit KeyedHashAlgorithm
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
| Nome | Description |
|---|---|
| HMAC() |
Inicializa uma nova instância da classe HMAC. |
Campos
| Nome | Description |
|---|---|
| HashSizeValue |
Representa o tamanho, em bits, do código hash computado. (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 da computação de hash. (Herdado de HashAlgorithm) |
Propriedades
| Nome | Description |
|---|---|
| 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 reutilizado. (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 cálculo HMAC. |
| OutputBlockSize |
Quando substituído em uma classe derivada, obtém o tamanho do bloco de saída. (Herdado de HashAlgorithm) |
Métodos
| Nome | Description |
|---|---|
| Clear() |
Libera todos os recursos usados pela HashAlgorithm classe. (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(Byte[]) |
Calcula o valor de hash para a matriz de bytes especificada. (Herdado de HashAlgorithm) |
| ComputeHash(Stream) |
Calcula o valor de hash para o objeto especificado Stream . (Herdado de HashAlgorithm) |
| Create() |
Cria uma instância da implementação padrão de um HMAC (Código de Autenticação de Mensagem baseado em Hash). |
| Create(String) |
Cria uma instância da implementação especificada de um HMAC (Código de Autenticação de Mensagem baseado em Hash). |
| Dispose() |
Libera todos os recursos usados pela instância atual da HashAlgorithm classe. (Herdado de HashAlgorithm) |
| Dispose(Boolean) |
Libera os recursos não gerenciados usados pela HMAC classe 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 hash predefinida. (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 para o objeto no algoritmo HMAC para calcular o valor HMAC. |
| HashCore(ReadOnlySpan<Byte>) |
Roteia dados gravados para o objeto no algoritmo HMAC para calcular o HMAC. |
| HashFinal() |
Quando substituído em uma classe derivada, finaliza a computação HMAC depois que os últimos dados são processados pelo algoritmo. |
| Initialize() |
Inicializa uma instância da implementação padrão de HMAC. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (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 a computação HMAC depois que os últimos dados são processados pelo algoritmo HMAC. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IDisposable.Dispose() |
Libera os recursos não gerenciados usados pelo HashAlgorithm e, opcionalmente, libera os recursos gerenciados. (Herdado de HashAlgorithm) |