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 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) |