Nenhum dado enviado

Gerador HMAC (Calcular HMAC-SHA256 no Navegador)

Uma ferramenta de cálculo HMAC para gerar HMAC-SHA256 aqui mesmo. Chaves e entradas não são enviadas nem armazenadas.

Suporta entradas Texto/Hex/Base64 e saídas Hex/Base64. Calcula com segurança usando a API Crypto padrão do navegador.

Cálculo Local Sem Armazenamento Hex/Base64 Suportados

Entrada e Saída

Esta página realiza cálculos inteiramente no navegador e não envia dados.

Nenhum dado enviado
Formato de Entrada

* A 'sequência de bytes' conforme especificações de API é importante. Se a chave for binária, insira em Hex/Base64.

Formato de Entrada
Comprimento da Saída: 32 bytes (SHA-256)
Opções

Os resultados mudarão se os códigos de quebra de linha diferirem devido ao SO ou copiar-colar.

Como assinaturas de API assumem 'correspondência exata', manter como está é geralmente recomendado.

Uso

Os 3 passos básicos para criar uma assinatura HMAC.

  1. 1 Insira a Chave (Selecione Hex / Base64 se a especificação da API for binária)
  2. 2 Insira a Mensagem (String para assinar / payload)
  3. 3 Selecione o Formato de Saída (Hex / Base64) e Copie

O HMAC é calculado sobre 'sequências de bytes', não 'strings de caracteres'. Mesmo que pareçam iguais, os resultados serão diferentes se a codificação de caracteres, quebras de linha ou espaços extras diferirem (assume UTF-8).

Exemplos (Vetores de Teste para Verificação)

Clique em 'Carregar Exemplo' para preencher os campos.

Exemplo 1
Chave (Texto/UTF-8)
secret
Mensagem (Texto/UTF-8)
message
HMAC-SHA256 (Hex)
8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b
HMAC-SHA256 (Base64)
i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=
Exemplo 2
Chave (Texto/UTF-8)
key
Mensagem (Texto/UTF-8)
The quick brown fox jumps over the lazy dog
HMAC-SHA256 (Hex)
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
HMAC-SHA256 (Base64)
97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

Erros Comuns

Diferenças de Código de Quebra de Linha (LF/CRLF)

Os resultados mudam se o tratamento de quebras de linha variar.

Remoção de Espaços (Trimming)

Como as assinaturas assumem correspondências exatas, remover espaços pode causar divergências.

Notação Base64URL

O Base64URL tipicamente usa +→-, /→_ e omite =. Verifique as especificações.

Tratamento de Chaves (Texto vs Binário)

Exemplo: Inserir 'deadbeef' como 'string' vs inserir como 'sequência de bytes 0xDE 0xAD...'.

Informação Suplementar

O que é HMAC?

Um mecanismo para criar uma assinatura a partir de uma chave secreta e uma mensagem. Terceiros não podem criar o mesmo resultado sem a mesma chave.

Diferença do SHA-256

O SHA-256 é um 'hash', o HMAC é um 'hash com chave (assinatura)'.

Casos de Uso

Usado para assinaturas de API, verificação de Webhooks, detecção de adulteração de requisições, etc.

FAQ

A chave é armazenada?

Não é armazenada. Esta ferramenta calcula no navegador e não envia chaves ou mensagens para um servidor. (※ Como precaução, limpe após usar em um PC compartilhado)

Base64 ou Hex?

Ambos são usados. Você pode selecionar o formato de saída (Hex / Base64 / Base64URL). Escolha de acordo com as especificações da API.

Codificação de Caracteres?

Assume UTF-8. A entrada de texto é convertida para bytes como UTF-8 para o cálculo. Use entrada Hex / Base64 para lidar com binários.

Diferença entre HMAC e hash SHA-256?

O SHA-256 é um 'hash', o HMAC é um 'hash com chave (assinatura)'. O mesmo resultado não pode ser produzido a menos que as chaves coincidam.

A saída não coincide

Causas comuns são (1) Tratamento de chaves (Texto vs Binário), (2) Quebras de linha, (3) Espaços em branco, (4) Base64URL. Verifique os 'Erros Comuns' acima.