Saltar para o conteúdo
BCBinary Code Translator
Menu

Utilitário criptográfico

Gerador HMAC SHA-256, SHA-384 e SHA-512

Crie HMAC com chave e dados UTF-8 via Web Crypto e saída Hex ou Base64, sem persistir intencionalmente a chave.

A chave é usada apenas na operação atual; não é registada, guardada nem enviada para um serviço externo.

A chave não é persistida. Evite segredos reais de produção numa sessão comum de navegador.

Como gerar um HMAC

Introduza o segredo partilhado e a mensagem exatamente como o protocolo define, selecione SHA-2 e a codificação e gere. Espaço, quebra ou codificação diferente altera o código.

  1. Cole a chave literal só quando o protocolo disser texto UTF-8; uma chave Hex ou Base64 normalmente representa bytes e precisa ser descodificada.
  2. Cole os dados exatos, incluindo quebras, separadores, timestamp e representação canónica.
  3. Escolha SHA-256, SHA-384 ou SHA-512 e Hex ou Base64 conforme o protocolo.
  4. Gere, compare o código completo e limpe chave e área de transferência ao terminar.

Exemplos e comportamento esperado

Entrada Saída Observações
Chave: Jefe Dados: what do ya want for nothing? HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75… Vetor RFC 4231, caso 2.
Chave secret Dados message HMAC determinístico Mesmos bytes, algoritmo e codificação geram o mesmo valor.
Chave secret Dados Message HMAC diferente Mudar maiúsculas altera os bytes.
Chave segredo Dados Olá 👋 HMAC UTF-8 Carateres internacionais são codificados em UTF-8.
Saída Hex Dois carateres por byte HMAC-SHA-256 tem 64 carateres Hex.
Saída Base64 Base64 dos mesmos bytes A codificação não muda o resultado criptográfico.

O que HMAC oferece

HMAC combina chave secreta com função hash. Quem possui a mesma chave pode recomputar e detetar alterações; um terceiro sem chave não deve conseguir autenticar mensagem modificada.

Oferece integridade e autenticidade partilhada, não encriptação. A mensagem continua legível e não há não repúdio, pois todos os detentores da chave geram códigos. Para verificação pública, use assinaturas digitais.

  • HMAC-SHA-256 usa SHA-256 dentro da construção.
  • O comprimento corresponde ao hash subjacente.
  • Confidencialidade exige criptografia separada.

Representação e gestão de chaves

O campo é interpretado como texto UTF-8. Uma cadeia de texto Hex ou Base64 normalmente codifica bytes de chave; usar os carateres literalmente produz outro HMAC. Descodifique conforme o protocolo ou use ferramenta com opção de codificação da chave.

Segurança depende de entropia, armazenamento e rotação. Use chaves aleatórias, gestor de segredos, acesso mínimo, identificadores e revogação. Não as coloque em repositórios nem tickets.

  • Diferencie bytes crus de texto codificado.
  • Evite palavras-passe escolhidas por pessoas como chave direta.
  • Planeie a rotação de segredos de webhooks.

Bytes canónicos e UTF-8

HMAC autentica bytes. Quebras, espaços, normalização Unicode, ordem JSON, URL encoding ou formato de timestamp mudam o resultado. Reformatar JSON antes de verificar normalmente quebra a assinatura.

Use o corpo bruto ou a cadeia de texto exata definida, com separadores e zeros iniciais. Não converta segundos em milissegundos sem uma regra do protocolo. A maioria das falhas de integração é normalização canónica.

  • CRLF e LF são diferentes.
  • Quebra final muda o código.
  • Unicode visualmente igual pode ter outra normalização.

Algoritmo e codificação

São suportados HMAC-SHA-256, 384 e 512. Use o algoritmo exigido. SHA-256 é comum, mas novos desenhos devem seguir padrão revisado.

Hexadecimal e Base64 representam os mesmos bytes. Base64 padrão não é Base64url. Siga exatamente o alfabeto, o preenchimento e a utilização esperada de maiúsculas e minúsculas.

  • HMAC-SHA-256 produz 32 bytes.
  • A utilização de maiúsculas no hexadecimal depende do protocolo.
  • Base64 padrão usa +, / e padding.

Verificação de webhooks e APIs

Um verificador robusto lê o corpo bruto, extrai o tempo e o identificador da chave, reconstrói a mensagem, calcula o HMAC e compara em tempo constante. Também valida a atualidade e impede a reutilização.

Esta página serve para vetores e depuração, não como endpoint. Não exponha segredos de produção em sessão partilhada; verifique no servidor antes de ações.

  • Verifique bytes brutos quando exigido.
  • Rejeite timestamps antigos.
  • Compare em tempo constante.
  • Selecione a chave por ID na rotação.

Erros, limites e manejo seguro

Chave vazia é rejeitada e Web Crypto é obrigatório. Chave e mensagem ficam no estado da página, sem persistência intencional. Limpar não apaga gestores de área de transferência nem gravações.

Apenas texto é aceite, não chaves binárias ou ficheiros. Não deriva chaves, trunca etiquetas, compara ou gere replay. Para segredos muito sensíveis use ambiente local auditado.

  • Não cole segredos reais em dispositivos partilhados.
  • Limpe a área de transferência.
  • Não trunque HMAC sem definição do protocolo.

Diferenças para hash e criptografia

Hash simples não tem chave. HMAC é construção padrão e não deve ser substituído por hash(chave || mensagem), que pode ter fraquezas estruturais.

Criptografia oculta conteúdo; HMAC autentica, mas não oculta. Use criptografia autenticada revisada quando precisar das duas propriedades.

Perguntas frequentes

HMAC é hash da chave mais mensagem?

Não. É uma construção padrão com preenchimentos interno e externo. Concatenar e aplicar hash pode sofrer de propriedades como a extensão de comprimento.

Chave e mensagem são enviadas ou guardadas?

Não intencionalmente. São codificadas no navegador e passadas ao Web Crypto, sem localStorage ou servidor. Extensões e área de transferência ficam fora.

Posso colar chave Hex ou Base64?

Só quando o protocolo disser que os carateres são a chave. Normalmente codificam bytes e precisam ser descodificados. O campo usa UTF-8 literal.

Porque é que muda ao formatar JSON?

HMAC autentica bytes exatos. Espaços, ordem, quebras e escapes mudam os bytes. Use corpo bruto ou cadeia de texto canónica definida.

Impede replay?

Não sozinho. Autentique timestamp, nonce ou ID e aplique janela ou registo de reutilização.

Criptografa a mensagem?

Não. Oferece integridade e autenticidade partilhada, mas o conteúdo permanece legível.

Ferramentas relacionadas

Ver todas as ferramentas

Preferências de cookies

Gerir as preferências de cookies. Os cookies necessários não podem ser desativados.

Necessários

Obrigatório

Necessários para seleção de idioma, escolhas de privacidade e funcionalidades básicas do site.

Cookies: NEXT_LOCALE

Análises

Cookies opcionais de análise ajudam a entender o tráfego e melhorar o site.

Cookies: _ga, _gid, _gat, _clck, _clsk

Publicidade

Cookies opcionais de publicidade podem ser usados para mostrar anúncios relevantes e medir desempenho.

Cookies: __gads, _gcl_au, IDE