Gerador HMAC

Gere um HMAC (código de autenticação de mensagem baseado em hash) a partir de texto e uma chave secreta. A calculadora online oferece HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384 e HMAC-SHA-512, aceita chaves em texto, hexadecimal ou Base64 e devolve a etiqueta em hexadecimal minúsculo. O cálculo é feito localmente no navegador.

Chave secreta
Entrada
0 caract. · 0 bytes
Testar:
Hash
✓ Processamento local no navegador ✓ A entrada não é enviada ao servidor
Exemplos
Mensagem vazia
Chave: segredo Algoritmo: hmac-sha-256 Formato da chave: text
Entrada (vazio)
Saída e6e1c4731143b7e394dead5a4e02e7077f52e8bbe8e9914035ed3ffa0bc727aa

Uma mensagem vazia é válida. HMAC-SHA256 ainda produz uma etiqueta hex de 64 caracteres com a chave «segredo».

Chave de texto
Chave: segredo Algoritmo: hmac-sha-256 Formato da chave: text
Entrada Olá, mundo!
Saída c44be04319ea6fafd3978856a122f841c2fb892f9927a8f6f2249a012f4e86a3

HMAC-SHA256 de «Olá, mundo!» com a chave de texto UTF-8 «segredo».

Outra mensagem e chave
Chave: chave Algoritmo: hmac-sha-256 Formato da chave: text
Entrada verificação
Saída e2ed3b484ee09282998f206477be48389ed059165663d6503667b803286d9b24

Alterar a mensagem ou a chave produz uma etiqueta HMAC-SHA256 completamente diferente.

Vetor de teste HMAC-SHA256 da RFC 4231
Chave: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b Algoritmo: hmac-sha-256 Formato da chave: hex
Entrada Hi There
Saída b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7

O caso de teste 1 da RFC 4231 usa uma chave de 20 bytes em hex e permite verificar implementações HMAC-SHA256.

O que é HMAC?

HMAC (Hash-based Message Authentication Code) combina uma função hash criptográfica com uma chave secreta. Definido na RFC 2104, transforma uma mensagem de qualquer tamanho numa etiqueta de autenticação de tamanho fixo. HMAC-SHA256 é a variante moderna mais comum; HMAC-SHA384 e HMAC-SHA512 produzem etiquetas maiores, enquanto HMAC-SHA1 ainda aparece em protocolos antigos.

Quem possui a mesma chave pode recalcular o HMAC e comparar as etiquetas. A igualdade indica que a mensagem não mudou e foi criada por alguém que conhece o segredo partilhado. HMAC é um código de autenticação simétrico, não encriptação nem assinatura digital de chave pública.

Como funciona o HMAC

De forma simplificada, HMAC calcula H((K′ ⊕ opad) || H((K′ ⊕ ipad) || mensagem)). A chave é ajustada ao tamanho de bloco do hash e combinada com duas constantes nas operações interna e externa. Isso evita o problema de extensão de comprimento de construções ingénuas como hash(chave || mensagem).

HMAC-SHA1 produz 20 bytes (40 caracteres hex), HMAC-SHA256 32 bytes (64), HMAC-SHA384 48 bytes (96) e HMAC-SHA512 64 bytes (128). O gerador mostra a etiqueta completa em hexadecimal minúsculo, sem truncamento.

Como usar o gerador HMAC
  1. Introduza a mensagem exata.
  2. Escolha HMAC-SHA256, HMAC-SHA1, HMAC-SHA384 ou HMAC-SHA512.
  3. Selecione o formato da chave: texto, hex ou Base64.
  4. Introduza a chave secreta e copie o resultado hexadecimal.

A mensagem é sempre codificada em UTF-8. No modo texto a chave também usa UTF-8; hex e Base64 são primeiro descodificados em bytes. Espaços, quebras de linha, maiúsculas, Unicode, algoritmo e formato da chave alteram o resultado.

HMAC para APIs, webhooks e JWT

HMAC é usado para autenticar pedidos de API, conteúdos de webhooks, dados de sessão e mensagens de protocolos. A verificação recalcula a etiqueta sobre exatamente os mesmos bytes com o segredo partilhado e compara em tempo constante. Um timestamp ou nonce também pode evitar ataques de repetição.

Siga sempre a especificação: uma API pode exigir um pedido canónico, um webhook pode assinar o corpo HTTP bruto e JWT HS256 usa Base64URL em vez de hex. Esta ferramenta calcula o HMAC do texto introduzido, mas não cria strings específicas de fornecedores, não converte para Base64URL e não verifica automaticamente uma etiqueta existente.

FAQ

Use HMAC quando duas partes partilham um segredo e precisam detetar alterações intencionais ou autenticar quem conhece esse segredo. Qualquer pessoa pode recalcular um SHA-256 normal depois de alterar a mensagem. Para verificação pública sem segredo partilhado, use uma assinatura digital.

Para HMAC-SHA256, uma chave aleatória de 32 bytes é uma boa opção. Gere-a de forma criptograficamente segura e proteja-a num gestor de segredos. Evite palavras-passe, frases previsíveis, segredos reutilizados e chaves no código cliente.

As chaves HMAC são bytes, mas costumam ser guardadas como texto hex ou Base64. O modo texto codifica UTF-8; hex e Base64 recuperam os bytes originais. “616263”, “YWJj” e “abc” só são equivalentes com os formatos correspondentes.

O cálculo é executado localmente através da Web Crypto API; mensagem e chave não são enviadas ao servidor para cálculo. Se permitir guardar preferências, o campo da chave pode permanecer no armazenamento local. Limpe-o e apague os dados do site num dispositivo partilhado.

Use o algoritmo exigido pelo protocolo. HMAC-SHA256 é comum em novas integrações; SHA384 e SHA512 são adequados quando a especificação os exige. Mantenha SHA1 apenas por compatibilidade.

Não. HMAC é uma função unidirecional. Para verificar, são necessários a mensagem original e a mesma chave: recalcule a etiqueta e compare-a com o valor esperado.

Escolha o mesmo algoritmo e formato de chave, introduza exatamente a mensagem e a chave e compare as etiquetas. No código, use uma comparação de bytes em tempo constante. A calculadora não possui um campo de verificação automática.

Verifique algoritmo, formato e bytes da chave, codificação, maiúsculas, espaços, quebras de linha, serialização JSON e normalização Unicode. Para APIs e webhooks, confirme também o corpo ou string canónica exatos e o formato hex, Base64 ou Base64URL.

HS256 usa HMAC-SHA256, mas assina o cabeçalho e conteúdo codificados em Base64URL e codifica a assinatura em Base64URL sem preenchimento. Esta ferramenta devolve hex e não cria um JWT completo.
Ferramentas relacionadas