Gerador de HMAC
Calcule HMAC-SHA256, SHA-384, SHA-512, SHA-224, SHA-1, MD5, SHA3 ou RIPEMD-160 de uma mensagem com chave em texto, hex ou Base64. Saída hex ou Base64, em tempo real.
O HMAC (RFC 2104) mistura a chave no hash duas vezes: H((K ⊕ opad) || H((K ⊕ ipad) || message)). Chaves maiores que o bloco do hash são resumidas antes. No servidor, compare MACs em tempo constante.
O que é Gerador de HMAC?
Calcula um código de autenticação de mensagem baseado em hash com chave (HMAC, RFC 2104) para uma mensagem e uma chave secreta. Suporta SHA-2, SHA-3, SHA-1, MD5 e RIPEMD-160, chaves em texto, hex ou Base64, e mostra o MAC em hex minúsculo/maiúsculo ou Base64 enquanto você digita.
Como usar Gerador de HMAC
- Digite a Mensagem (texto, ou mude a codificação para Hex para bytes brutos).
- Informe a Chave secreta e escolha se ela é texto (UTF-8), Hex ou Base64.
- Escolha o Algoritmo, por exemplo HMAC-SHA-256.
- Escolha o Formato da saída e copie o HMAC.
Exemplo
Message "what do ya want for nothing?", key "Jefe", HMAC-SHA-256
5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843
Caso de teste 2 da RFC 4231.
Quando usar Gerador de HMAC
Use-o para verificar assinaturas de webhooks (Stripe, GitHub, Shopify, Slack), assinar requisições de API, depurar etapas de assinatura no estilo AWS ou conferir vetores de teste HMAC. Ele não serve para gerar hash de senhas (use bcrypt ou Argon2) e não é uma assinatura digital: qualquer pessoa com a chave pode criar o MAC.
Como funciona Gerador de HMAC
HMAC(K, m) = H((K′ ⊕ opad) ‖ H((K′ ⊕ ipad) ‖ m)), em que K′ é a chave completada com zeros até o tamanho do bloco do hash (chaves maiores que o bloco passam primeiro pelo hash), ipad = 0x36 e opad = 0x5C repetidos. Essa construção continua segura mesmo com hashes como MD5 e SHA-1, cuja resistência a colisões está quebrada. Os resumos vêm do hash-wasm e os resultados batem com os vetores de teste das RFC 4231 e RFC 2202.
Casos de Uso Comuns
- Verificar uma assinatura
X-Hub-Signature-256do GitHub ou de webhook do Stripe - Reproduzir a assinatura de uma requisição de API durante a depuração
- Conferir vetores de teste HMAC da RFC 4231
- Gerar valores HMAC-SHA1 para depurar OAuth 1.0 legado ou TOTP
- Comparar saídas entre duas linguagens que não batem
Nota de Segurança
A chave e a mensagem ficam no seu navegador. No servidor, compare MACs com uma função de tempo constante para evitar ataques de temporização.
Perguntas Frequentes
Por que meu HMAC não bate com o cabeçalho do webhook?
Confira se você processa o corpo bruto da requisição byte a byte (sem JSON reformatado), o segredo exato (alguns provedores o fornecem em Base64 ou com um prefixo como whsec_) e a codificação de saída esperada – o GitHub usa hex, o Shopify usa Base64.
HMAC-SHA1 ou HMAC-MD5 ainda são seguros?
Como MACs, eles não têm quebra prática, porque o HMAC não depende da resistência a colisões. São considerados legados; use HMAC-SHA-256 ou mais forte em sistemas novos.
A chave pode ficar vazia?
A RFC 2104 permite e a ferramenta faz o cálculo, mas uma chave vazia não oferece nenhuma segurança.
HMAC é o mesmo que gerar o hash de chave + mensagem?
Não. O simples hash(key + message) é vulnerável a ataques de extensão de comprimento com SHA-2; o hash duplo do HMAC impede isso.