Gerador de HMAC: SHA-1, SHA-256, SHA-512

Digite uma mensagem e uma chave secreta. Você recebe o HMAC da mensagem com quatro funções de hash, em hexadecimal e em Base64, calculado no seu navegador.

Gratuita Funciona no seu navegador Verificada em terça-feira, 10 de novembro de 2026

Os dados a autenticar. Texto é lido como UTF-8 exatamente como foi digitado. Hexadecimal ou Base64 é lido como bytes.

Codificação da mensagem

Como a mensagem está escrita.

A chave secreta. Só quem tem a mesma chave consegue gerar o mesmo HMAC, então mantenha-a em sigilo.

Codificação da chave

Como a chave está escrita. Base64 também lê o alfabeto seguro para URL de um valor JWK “k”.

Resultado

Valores de HMAC

Esta ferramenta funciona no seu navegador. O que você digita não é enviado para nós.

Como usar

  1. Digite os dados em Mensagem. Para dados binários, escolha Hexadecimal ou Base64 em Codificação da mensagem.
  2. Digite o segredo em Chave e escolha como ele está escrito em Codificação da chave.
  3. Leia as quatro linhas de Valores de HMAC. Copie o valor de que precisa, ou compare-o com o valor que seu sistema gera.
  4. Se os valores forem diferentes dos de outro sistema, confira os bytes primeiro: uma quebra de linha ou uma codificação diferente gera outro HMAC.

O que é um HMAC

Um HMAC (RFC 2104) é um código de autenticação de mensagem: um valor curto que só quem conhece a chave secreta consegue gerar. Ele é construído a partir de uma função de hash comum H, aplicada duas vezes à mensagem e à chave, então a mesma função pode ser usada nas quatro linhas da tabela. Como a chave é necessária, um HMAC que confere mostra que a mensagem não foi alterada e que veio de quem tem a chave.

Um HMAC não esconde a mensagem. Qualquer pessoa que tenha a mensagem pode lê-la; o HMAC só permite conferi-la.

HMAC(K, m) = H((K XOR opad) || H((K XOR ipad) || m))

ipad = o byte 0x36 repetido B vezes
opad = o byte 0x5C repetido B vezes
B    = o tamanho do bloco de H: 64 bytes para SHA-1 e SHA-256, 128 bytes para SHA-384 e SHA-512

Qual hash e qual chave

HMAC-SHA-256 é a escolha usual, e a que muitos webhooks e APIs usam. HMAC-SHA-512 é a mesma construção com uma saída mais longa. HMAC-SHA-1 ainda aparece em sistemas antigos, e não é uma escolha para projetos novos.

A chave deve ser aleatória e ter pelo menos o tamanho da saída do hash. Uma chave digitada como palavra ou frase curta é fácil de adivinhar, e uma chave adivinhada torna o HMAC sem valor.

Hexadecimal e Base64

As duas formas mostram os mesmos bytes. A hexadecimal escreve cada byte com dois dígitos, então o SHA-256 tem 64 dígitos. O Base64 escreve três bytes com quatro caracteres, então o SHA-256 tem 44 caracteres, o último deles um = de preenchimento (RFC 4648).

  • HMAC-SHA-1: 40 dígitos hexadecimais, 28 caracteres Base64
  • HMAC-SHA-256: 64 dígitos hexadecimais, 44 caracteres Base64
  • HMAC-SHA-384: 96 dígitos hexadecimais, 64 caracteres Base64
  • HMAC-SHA-512: 128 dígitos hexadecimais, 88 caracteres Base64

Exemplo resolvido: caso de teste 2 da RFC 4231

A chave Jefe e a mensagem what do ya want for nothing? são o segundo caso de teste da RFC 4231 para SHA-256, SHA-384 e SHA-512, e da RFC 2202 para SHA-1. A tabela abaixo é o que a página mostra para eles, e o valor de HMAC-SHA-256 é o que a RFC imprime: 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.

Algoritmo Hexadecimal Base64
HMAC-SHA-1 effcdf6ae5eb2fa2d27416d5f184df9c259a7c79 7/zfauXrL6LSdBbV8YTfnCWafHk=
HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843 W9zBRr9gdU5qBCQmCJV1x1oAPwidJzmDnexYuWTsOEM=
HMAC-SHA-384 af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649 r0XS43ZIQDFhf3jStYprG5x+9GT1oBtH5C7Dc2MiRF6OIkDKXmnix4syOez6shZJ
HMAC-SHA-512 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737 Fkt6e/z4GeLjlfvnO1bgo4e9ZCIugx/WECcM1+olBVSXWL91wFqZSm0DT2X48Ob9yuqxo01Ka0tjbgcKOLznNw==

Perguntas frequentes

Um HMAC é o mesmo que criptografar a mensagem?

Não. Um HMAC não esconde a mensagem, então qualquer pessoa pode lê-la. Ele mostra que a mensagem não foi alterada e que quem a enviou conhece a chave. Para sigilo, é preciso criptografia.

Qual é a diferença entre um hash e um HMAC?

Um hash depende só da mensagem, então qualquer pessoa pode calculá-lo. Um HMAC também precisa da chave secreta, então só quem tem a chave consegue gerá-lo ou conferi-lo. Para resumos simples, use o gerador de hash.

Por que meu HMAC é diferente do que minha biblioteca gera?

A chave ou os bytes da mensagem são diferentes. Uma chave digitada como texto são os seus bytes UTF-8, e as mesmas letras escritas em hexadecimal são outros bytes. Uma quebra de linha no fim da mensagem também muda o HMAC.

Que tamanho de chave devo usar?

Use uma chave aleatória com pelo menos o tamanho da saída do hash: 32 bytes para HMAC-SHA-256. A RFC 2104 desaconselha fortemente uma chave menor, e uma chave feita de palavras ou de uma frase curta é fácil de adivinhar.

Posso conferir a assinatura de um webhook com esta página?

Sim, se você usar exatamente os bytes que foram assinados. As assinaturas de webhook costumam ser calculadas sobre o corpo bruto da requisição, então cole o corpo sem alterações: um JSON reformatado gera outro HMAC.

Minha chave ou mensagem é enviada para algum lugar?

Não. O HMAC é calculado no seu navegador com o SubtleCrypto do próprio navegador. A chave e a mensagem não são enviadas nem guardadas.

Fontes

Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.

Usamos cookies necessários para o site funcionar. Com o seu consentimento, o Google também usa cookies de publicidade para mostrar anúncios personalizados. Se você recusá-los, continuará vendo anúncios, mas eles não serão personalizados.