O que é HMAC
HMAC (Hash-based Message Authentication Code) é um código que prova ao mesmo tempo a integridade e a autenticidade de uma mensagem. Ele combina o conteúdo com uma chave secreta e passa tudo por uma função de hash como SHA-256, gerando um valor que só quem conhece a chave consegue produzir ou conferir. Assim, quem recebe a mensagem sabe que ela não foi alterada e que veio de quem tem o segredo. É amplamente usado em assinaturas de webhooks, tokens e requisições de API. O cálculo aqui usa a Web Crypto nativa, sem enviar dados.
Diferença entre HMAC e hash comum
A diferença é a chave secreta. Um hash comum, como o SHA-256 puro, depende só da mensagem: qualquer pessoa consegue calcular o mesmo hash a partir do mesmo conteúdo, então ele prova integridade mas não autoria. O HMAC adiciona uma chave secreta ao cálculo, de forma que apenas quem possui essa chave consegue gerar ou validar o código. Por isso o HMAC serve para autenticação: se o código bate, a mensagem não foi adulterada e veio de alguém que conhece o segredo. Trocar SHA puro por HMAC é o passo que transforma verificação de erro em verificação de confiança.
Para que serve o HMAC
O HMAC serve para assinar e verificar mensagens entre sistemas que compartilham um segredo. O uso mais comum são webhooks: serviços como Stripe, GitHub e muitos gateways de pagamento enviam, junto do evento, um HMAC calculado com uma chave que só você e eles conhecem, para você confirmar que a notificação é legítima antes de agir sobre ela. Também aparece na assinatura de requisições de APIs (como a da AWS), em tokens e no JWT quando o algoritmo escolhido é HS256, HS384 ou HS512. Em todos os casos, ele garante que a mensagem não foi forjada nem alterada.
Como usar esta ferramenta
- Digite a mensagem e a chave secreta.
- Escolha o algoritmo de hash (SHA-256 é o mais comum).
- Copie o HMAC gerado em hexadecimal.
Perguntas Frequentes (FAQ)
- Qual a diferença entre HMAC e um hash comum?
- Um hash comum (como SHA-256 puro) só depende da mensagem. O HMAC combina a mensagem com uma chave secreta, então só quem tem a chave consegue gerar ou conferir o mesmo código.
- Para que serve o HMAC?
- Para assinar e verificar mensagens: webhooks (como os do Stripe e GitHub), tokens e requisições de API usam HMAC para garantir integridade e autenticidade.
- Minha chave secreta é enviada para algum lugar?
- Não. O cálculo é feito no seu navegador com a Web Crypto API. Nem a mensagem nem a chave saem do seu dispositivo.
