O que é HMAC?
HMAC (Código de Autenticação de Mensagem Baseado em Hash) é um mecanismo criptográfico que combina uma chave secreta com uma função hash para produzir um código de autenticação. Ele fornece tanto integridade de dados quanto autenticação — garantindo que uma mensagem não foi alterada e foi enviada por alguém que conhece a chave secreta.
Casos de Uso Comuns
Verificação de Webhook
Autenticação de API
Assinatura JWT
Integridade de Mensagem
Como o HMAC Funciona
HMAC recebe duas entradas — uma chave secreta e uma mensagem — e as executa através de uma função hash (como SHA-256) de uma forma específica que torna computacionalmente impossível falsificar sem conhecer a chave.
HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m))
Onde:
Hé a função hash (por exemplo, SHA-256)Ké a chave secretamé a mensagem a ser autenticadaopadeipadsão constantes de preenchimento que garantem segurança
Como Usar Este Gerador HMAC
Escolha um Algoritmo
Selecione seu algoritmo HMAC no menu suspenso. SHA-256 é selecionado por padrão e recomendado para a maioria dos casos de uso. MD5 e SHA-1 estão disponíveis para compatibilidade com versões anteriores, mas marcados como inseguros.
Digite Sua Chave Secreta
Digite ou cole sua chave secreta no campo de entrada de chave. Se sua chave estiver em formato binário, use o seletor de tipo de entrada para alternar entre codificação String, Hex ou Base64.
Digite Sua Mensagem
Digite a mensagem que você deseja autenticar. Como a chave, você pode alternar o tipo de entrada se sua mensagem estiver codificada em hex ou base64.
Obtenha Seu HMAC
O HMAC é gerado automaticamente conforme você digita. Ambas as saídas Hex e Base64 são exibidas simultaneamente. Clique no botão de cópia ao lado de qualquer saída para copiá-la para sua área de transferência.
Verificando um HMAC
Para comparar seu HMAC gerado com um valor esperado, ative a caixa de seleção Verificar HMAC. Cole o HMAC esperado — a ferramenta aceita formatos hex e base64 e mostra um crachá de Correspondência ou Não Correspondência instantaneamente.
Recursos
8 Algoritmos HMAC
Gere códigos HMAC com uma ampla gama de algoritmos hash para corresponder a qualquer requisito de integração:
SHA-256 Recomendado
A escolha padrão para webhooks, APIs e JWT (HS256). Fornece excelente segurança com saída de 256 bits.
SHA-512
Segurança superior com saída de 512 bits. Ideal para aplicações que exigem força criptográfica máxima.
SHA-384 & SHA-224
Variantes alternativas de SHA-2 oferecendo saídas de 384 bits e 224 bits para requisitos de segurança específicos.
SHA3-256 & SHA3-512
Algoritmos SHA-3 de última geração baseados no algoritmo Keccak, oferecendo padrões criptográficos modernos.
Formatos de Entrada Flexíveis
Tanto a chave secreta quanto a mensagem aceitam três tipos de entrada, essencial ao trabalhar com chaves binárias de APIs ou depurar incompatibilidades de codificação:
String (UTF-8)
Hex
Base64
Exibição de Saída Dupla
Veja ambas as representações Hex e Base64 do seu HMAC ao mesmo tempo — sem necessidade de alternar. Um alternador de maiúsculas permite alternar a saída hex entre minúsculas e maiúsculas.
Formato Hexadecimal
- Representação mais longa
- Mais fácil de ler e depurar
- Dois caracteres por byte
- Alternância de maiúsculas/minúsculas
Formato Base64
- 33% mais compacto
- Comum em cabeçalhos HTTP
- Usado em tokens JWT
- Variantes seguras para URL disponíveis
Verificação HMAC
O modo de verificação integrado permite colar um valor HMAC esperado e ver instantaneamente se corresponde à sua saída gerada. Suporta formatos hex e base64 e normaliza espaços em branco e maiúsculas/minúsculas para comparação hex.
Validação Instantânea
Comparação em tempo real com crachás de Correspondência/Não Correspondência conforme você digita.
Flexibilidade de Formato
Aceita automaticamente formatos de entrada hex e base64.
Normalização Inteligente
Lida com diferenças de espaço em branco e maiúsculas/minúsculas em valores hex.
Seus Dados Permanecem Privados
Todos os cálculos HMAC acontecem inteiramente no seu navegador usando a biblioteca CryptoJS:
- Sem uploads — Suas chaves secretas e mensagens nunca saem do seu dispositivo
- Sem processamento no servidor — Tudo é executado no lado do cliente em JavaScript
- Sem rastreamento — Não registramos ou armazenamos nenhum dado de entrada
- Funciona offline — Funciona sem conexão com a internet após ser carregado
Perguntas Frequentes
Qual algoritmo HMAC devo usar?
SHA-256 é o mais amplamente usado e recomendado para a maioria das aplicações. É usado por webhooks do Stripe, GitHub, Shopify e assinaturas de API da AWS. Use SHA-512 se precisar de segurança superior, ou variantes SHA3 para o padrão mais recente.
Por que MD5 e SHA-1 são marcados como inseguros?
MD5 e SHA-1 têm fraquezas criptográficas conhecidas — ataques de colisão foram demonstrados para ambos. Embora HMAC-MD5 e HMAC-SHA1 ainda sejam considerados seguros em alguns contextos (a construção HMAC adiciona segurança), é uma prática recomendada usar SHA-256 ou superior para novas implementações.
Qual é a diferença entre saída Hex e Base64?
Hex representa cada byte como dois caracteres hexadecimais (0-9, a-f). É mais longo, mas mais fácil de ler e depurar. Base64 é mais compacto (cerca de 33% mais curto) e comumente usado em cabeçalhos HTTP e JWTs. Escolha o formato que sua API ou serviço espera.
| Formato | Comprimento | Uso Comum | Legibilidade |
|---|---|---|---|
| Hex | 64 caracteres (SHA-256) | Depuração, logs | Alta |
| Base64 | 44 caracteres (SHA-256) | Cabeçalhos HTTP, JWT | Média |
Quando devo usar o tipo de entrada Hex ou Base64 para chaves?
Se sua chave secreta for fornecida como uma string hex (por exemplo, do painel de API mostrando bytes brutos) ou string base64, selecione o tipo de entrada correspondente para que a ferramenta interprete corretamente os dados binários. Na maioria das vezes, "String" (UTF-8) é a escolha correta.
- String (UTF-8) — Use para senhas de texto regular e chaves de API como "minha_chave_secreta_123"
- Hex — Use quando sua chave parecer "a3f5b2c8d1e4..." (bytes hexadecimais)
- Base64 — Use quando sua chave parecer "SGVsbG8gV29ybGQ=" (codificado em base64)
Como verifico uma assinatura de webhook?
Digite o segredo de assinatura do webhook como a chave, cole o corpo da requisição bruta como a mensagem, selecione o algoritmo que seu serviço usa (geralmente SHA-256), depois ative Verificar HMAC e cole a assinatura do cabeçalho do webhook para verificar se corresponde.
Obter Segredo
Copie o segredo de assinatura do painel de serviço
Corpo Bruto
Cole o corpo exato da requisição
Verificar
Compare com a assinatura do cabeçalho
Meus dados estão seguros?
Sim. Todos os cálculos HMAC são executados inteiramente no seu navegador — nenhum dado é enviado para nenhum servidor. Suas chaves secretas e mensagens permanecem no seu dispositivo o tempo todo.
Ainda não há comentários. Seja o primeiro a comentar!