logo
GeekFormat

Gerador e Verificador HMAC

Algoritmo de Hashi

O comprimento da chave recomendado corresponde ao comprimento da saída do Hash: SHA-1=20 bytes, SHA-256=32 bytes, SHA-384=48 bytes, SHA-512=64 bytes

Índice da Mensagem0 caracteres
Assinatura HMAC (Hex)
Aguardando entrada...

Notas

  • HMAC Gera assinaturas baseadas em algoritmos de chave e Hashi para autenticação de fonte e integridade
  • Suporte SHA-1 / SHA-256 / SHA-384 / SHA-512
  • Gerar e validar tanto localmente em navegadores, sem enviar dados
  • Validação usa comprimento fixo por bytes para reduzir diferenças de séries temporais

Gere e verifique assinaturas HMAC online grátis, suporta algoritmos comuns da série SHA. Ideal para assinatura de API, verificação de Webhook e debug de segurança.

Sugestões Relacionadas

Casos de uso

  • Desenvolvimento de webhook Stripe: Depure retornos de pagamento Stripe, verifique a correção do cabeçalho `Stripe-Signature`
  • Integração de webhook GitHub: Verifique assinatura `X-Hub-Signature-256` para eventos Push e Pull Request do GitHub
  • Sincronização de pedidos Shopify: Verifique assinatura `X-Shopify-Hmac-Sha256` para webhooks de atualização de pedidos Shopify
  • Assinaturas de bot Slack: Verifique `X-Slack-Signature` para retornos de eventos Slack
  • Debug de desenvolvimento JWT: Assine JWTs com HS256, verifique validade do token
  • Assinatura de solicitação API: Implemente AWS Signature V4 ou esquemas de assinatura API personalizados

Recursos

  • Suporte a múltiplos algoritmos: HMAC-SHA256/384/512, SHA1, MD5 — cobre APIs modernas e sistemas legados
  • Verificação de assinatura Webhook: Suporte integrado para formatos de assinatura Stripe/GitHub/Shopify/Slack com análise automática
  • Três formatos de saída: Hex / Base64 / Base64URL — atende a qualquer requisito de API ou plataforma
  • Geração em tempo real: Cálculo automático na alteração de entrada com debounce de 300ms, sem necessidade de clicar em botão
  • Modo de verificação de assinatura: Cole a assinatura esperada para comparar, exibição de resultado de correspondência em tempo real
  • Detecção de comprimento de chave: Monitoramento em tempo real da força da chave com avisos para chaves curtas
  • Processamento no navegador: Web Crypto API para computação local, chaves nunca carregadas no servidor
  • Suporte JWT: Saída HMAC-SHA256 diretamente utilizável para assinatura HS256

Como Usar

  1. Selecione algoritmo: HMAC-SHA256 padrão, recomendado para APIs modernas
  2. Insira mensagem: Cole corpo da mensagem bruta ou conteúdo de solicitação API
  3. Insira chave: Insira Webhook Secret ou API Secret
  4. Escolha formato: Selecione formato de saída (hex para Stripe, Base64URL para JWT)
  5. Verifique assinatura: Mude para modo de verificação, cole assinatura esperada para comparar

Perguntas frequentes

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

Funções hash normais (como SHA256) apenas calculam um resumo da mensagem em si — qualquer pessoa pode calculá-las. O HMAC introduz uma chave secreta no processo de hash, então apenas partes com a chave podem gerar ou verificar uma assinatura válida. O HMAC garante tanto a integridade da mensagem quanto a autenticidade, enquanto hashes normais verificam apenas a integridade.

Como verificar assinaturas de webhook Stripe/GitHub/Shopify?

Diferentes plataformas formatam suas assinaturas de maneira diferente: Stripe usa o cabeçalho `Stripe-Signature` com formato `t=timestamp,v1=hex_signature`, assinando a string `timestamp.payload`; GitHub usa `X-Hub-Signature-256` com formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` com valor codificado em Base64. Esta ferramenta suporta verificação direta desses formatos comuns.

Qual é a diferença entre saída Hex, Base64 e Base64URL?

Hex é formato hexadecimal (0-9, A-F), legível por humanos, ótimo para debug. Base64 é uma codificação de 64 caracteres, mais compacta, ideal para incorporar em JSON. Base64URL é a versão segura para URL (substitui +/ por -_), usada em cabeçalhos JWT e parâmetros URL.

Qual algoritmo HMAC devo usar?

**HMAC-SHA256 é recomendado**: é o padrão moderno para APIs e webhooks (usado por Stripe, GitHub, Shopify, Slack), com saída de 32 bytes e suporte universal. SHA-512 oferece maior segurança, mas saída mais longa (64 bytes). SHA1 é apenas para sistemas legados. MD5 está obsoleto e deve ser usado apenas para APIs muito antigas.

Quais são os requisitos para comprimento de chave?

Chaves mais longas são mais seguras. Mínimo de 16 caracteres (128 bits) recomendado, 32+ caracteres para produção. A ferramenta monitora o comprimento da chave e avisa se for muito curta. Use geradores de números aleatórios criptograficamente seguros para chaves, não senhas simples ou strings previsíveis.

Por que a verificação de assinatura mostra incompatibilidade?

Causas comuns: 1) Mensagem contém espaços em branco ou quebras de linha extras; 2) Plataforma assina uma string composta (ex: Stripe assina `timestamp.payload`); 3) Assinatura inclui um prefixo que você precisa remover (como `sha256=` do GitHub); 4) Algoritmo diferente usado. Verifique se ambos os lados usam parâmetros idênticos.

HMAC pode ser usado para assinatura JWT?

Sim. O algoritmo HS256 do JWT é HMAC-SHA256, e HS512 é HMAC-SHA512. A saída HMAC-SHA256 desta ferramenta pode ser usada diretamente como conteúdo de assinatura para HS256. Cabeçalho e Payload JWT são codificados em Base64URL, depois assinados com HS256.

Esta ferramenta HMAC online é segura?

Esta ferramenta usa Web Crypto API para todos os cálculos localmente no seu navegador. Chaves e mensagens nunca são enviadas para nenhum servidor. Você pode verificar isso abrindo o painel Network das Ferramentas de Desenvolvedor do navegador — nenhuma solicitação externa é feita. Adequado para testes e desenvolvimento; para chaves de produção altamente sensíveis, use ferramentas offline locais.

Assinaturas HMAC podem ser falsificadas?

Não. A segurança HMAC depende do sigilo da chave e da resistência a colisões do algoritmo hash. Com chaves suficientemente longas e aleatórias, não há ataques conhecidos que possam falsificar assinaturas HMAC válidas. A rotação regular de chaves é uma boa prática de segurança.

O que é Gerador e Verificador HMAC?

HMAC (Hash-based Message Authentication Code) é uma tecnologia de autenticação de mensagem amplamente utilizada definida na RFC 2104. O HMAC processa uma chave junto com uma mensagem através de uma função hash para produzir uma assinatura de comprimento fixo. Ao contrário de hashes normais, o HMAC requer conhecer a chave para gerar ou verificar uma assinatura, garantindo tanto a integridade da mensagem quanto a autenticidade.

**HMAC é a base da segurança moderna de API**. Stripe, GitHub, Shopify, Slack e Twilio usam HMAC-SHA256 para assinar eventos de webhook, garantindo que as solicitações realmente venham da plataforma. AWS usa HMAC-SHA256 para assinatura de solicitações Signature V4. O algoritmo HS256 do JWT é essencialmente HMAC-SHA256. Entender HMAC é o primeiro passo para dominar a segurança de API.

**Diferentes plataformas têm diferentes formatos de assinatura**: o formato da Stripe é `t=timestamp,v1=hex_signature`, assinando `timestamp.payload`; GitHub usa `X-Hub-Signature-256` com formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` com valor codificado em Base64. Esta ferramenta suporta análise automática e verificação desses formatos comuns.

**Por que a verificação de assinatura falha?** O motivo mais comum é incompatibilidade de formato de mensagem: a plataforma pode estar assinando `timestamp.payload` em vez do corpo da mensagem bruta; ou a mensagem contém quebras de linha extras; ou a assinatura inclui um prefixo (como `sha256=`) que precisa ser removido. Verifique cuidadosamente a documentação da plataforma e compare usando o valor hexadecimal bruto.

Esta ferramenta usa a **Web Crypto API** nativa do navegador (SubtleCrypto) para cálculos HMAC — a mesma biblioteca criptográfica que alimenta HTTPS e TLS. Todos os cálculos acontecem localmente; chaves e mensagens nunca são enviadas para nenhum servidor. Abra o painel Network das Ferramentas de Desenvolvedor do navegador para verificar que nenhuma solicitação externa é feita.