Compartilhar via


HMACSHA1 Classe

Definição

Calcula um HMAC (Hash-based Message Authentication Code) usando a função de hash SHA1.

public ref class HMACSHA1 : System::Security::Cryptography::HMAC
public ref class HMACSHA1 : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public class HMACSHA1 : System.Security.Cryptography.HMAC
public class HMACSHA1 : System.Security.Cryptography.HMAC
public class HMACSHA1 : System.Security.Cryptography.KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public class HMACSHA1 : System.Security.Cryptography.HMAC
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type HMACSHA1 = class
    inherit HMAC
type HMACSHA1 = class
    inherit HMAC
type HMACSHA1 = class
    inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMACSHA1 = class
    inherit HMAC
Public Class HMACSHA1
Inherits HMAC
Public Class HMACSHA1
Inherits KeyedHashAlgorithm
Herança
Herança
Atributos

Comentários

HMACSHA1 é um tipo de algoritmo de hash chave que é construído a partir da função de hash SHA1 e usado como um HMAC ou código de autenticação de mensagem baseado em hash. O processo HMAC combina uma chave secreta com os dados da mensagem, faz hashes do resultado com a função de hash, mistura esse valor de hash com a chave secreta novamente e aplica a função de hash uma segunda vez. O hash de saída tem 160 bits de comprimento.

Um HMAC 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 valor de hash como uma única mensagem. O receptor recalcula o valor de hash na mensagem recebida e verifica se o HMAC calculado corresponde ao HMAC transmitido.

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.

O SHA-1 (Algoritmo de Hash Seguro, também chamado SHS, Secure Hash Standard) é um algoritmo de hash criptográfico publicado pelo Governo dos Estados Unidos. Ele produz um valor de hash de 160 bits de uma cadeia de caracteres de comprimento arbitrário.

HMACSHA1 aceita chaves de qualquer tamanho e produz uma sequência de hash de 160 bits de comprimento.

Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.

Construtores

HMACSHA1()

Inicializa uma nova instância da classe HMACSHA1 com uma chave gerada aleatoriamente.

HMACSHA1(Byte[])

Inicializa uma nova instância da classe HMACSHA1 com os dados de chave especificados.

HMACSHA1(Byte[], Boolean)
Obsoleto.

Inicializa uma nova instância da classe HMACSHA1 com os dados de chave especificados e um valor que especifica se deve-se ou não usar a versão gerenciada do algoritmo SHA1.

Campos

HashSizeInBits

O tamanho do hash produzido pelo algoritmo HMAC SHA1, em bits.

HashSizeInBytes

O tamanho do hash produzido pelo algoritmo HMAC SHA1, em bytes.

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.

(Herdado de HMAC)
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.

HashName

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

(Herdado de HMAC)
HashSize

Obtém o tamanho, em bits, do HMAC calculado.

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 de hash.

Key

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

(Herdado de 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)
Dispose()

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

(Herdado de HashAlgorithm)
Dispose(Boolean)

Este membro substitui Dispose(Boolean), e pode haver uma documentação mais completa disponível nesse tópico.

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

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.

(Herdado de HMAC)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes de ser recuperado pela coleta de lixo.

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)

Encaminha os dados gravados no objeto para o algoritmo de hash SHA1 para computar o HMAC (Hash-based Message Authentication Code).

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.

(Herdado 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 HMAC para cálculo do HMAC.

(Herdado de HMAC)
HashCore(ReadOnlySpan<Byte>)

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

(Herdado de HashAlgorithm)
HashData(Byte[], Byte[])

Calcula o HMAC de dados usando o algoritmo SHA1.

HashData(Byte[], Stream)

Calcula o HMAC de um fluxo usando o algoritmo SHA1.

HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

Calcula o HMAC de dados usando o algoritmo SHA1.

HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>)

Calcula o HMAC de dados usando o algoritmo SHA1.

HashData(ReadOnlySpan<Byte>, Stream)

Calcula o HMAC de um fluxo usando o algoritmo SHA1.

HashData(ReadOnlySpan<Byte>, Stream, Span<Byte>)

Calcula o HMAC de um fluxo usando o algoritmo SHA1.

HashDataAsync(Byte[], Stream, CancellationToken)

Calcula de forma assíncrona o HMAC de um fluxo usando o algoritmo SHA1.

HashDataAsync(ReadOnlyMemory<Byte>, Stream, CancellationToken)

Calcula de forma assíncrona o HMAC de um fluxo usando o algoritmo SHA1.

HashDataAsync(ReadOnlyMemory<Byte>, Stream, Memory<Byte>, CancellationToken)

Calcula de forma assíncrona o HMAC de um fluxo usando o algoritmo SHA1.

HashFinal()

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

HashFinal()

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

(Herdado de HMAC)
Initialize()

Redefine o algoritmo de hash para o estado inicial.

Initialize()

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

(Herdado de 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)
TryHashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32)

Tenta calcular o HMAC de dados usando o algoritmo SHA1.

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 HMAC depois que os últimos dados são processados pelo algoritmo HMAC.

(Herdado de 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