Ferramentas Cripto·7 min

Como gerar assinaturas HMAC: SHA-256, SHA-1, SHA-512

Aprenda a gerar e verificar assinaturas HMAC para requisições de API, webhooks e JWTs. Ferramenta gratuita no navegador.

O que é uma assinatura HMAC?

HMAC (Hash-based Message Authentication Code) é uma forma de verificar a integridade e a autenticidade de uma mensagem. Ele usa uma função hash criptográfica (normalmente SHA-256) combinada com uma chave secreta compartilhada para produzir uma assinatura única para uma entrada dada. Se um único byte da mensagem mudar, a assinatura também muda.

HMAC é amplamente usado em autenticação de API, verificação de webhook, assinatura de JWT e protocolos de comunicação segura. Diferente de um hash simples, HMAC requer uma chave, o que significa que só as partes que detêm o segredo podem produzir ou verificar a assinatura.

Casos de uso comuns

  • Verificação de webhook: confirmar que uma requisição recebida veio de um remetente conhecido
  • Assinatura de requisições API: permitir que um servidor verifique que a requisição foi emitida por um cliente conhecido
  • Assinatura de JWT: produzir o segmento de assinatura de um JSON Web Token
  • Integridade de arquivos: detectar adulterações em trânsito ou em armazenamento
  • OAuth 1.0a e AWS Signature V4: esquemas de assinatura clássicos e modernos

Método 1: Use o gerador HMAC gratuito do UtilBoxx (Recomendado)

Nosso gerador de assinaturas HMAC suporta HMAC-SHA-256, HMAC-SHA-1 e HMAC-SHA-512, e produz saída em hex ou Base64. Veja como usar:

  1. Vá para utilboxx.com/pt/tools/crypto/hmac
  2. Digite sua mensagem e chave secreta
  3. Escolha o algoritmo (SHA-256 por padrão)
  4. Escolha a codificação de saída (hex ou Base64)
  5. Copie a assinatura gerada com um clique

Por que este método funciona:

  • Roda inteiramente no seu navegador — segredos nunca saem do seu dispositivo
  • Suporta os algoritmos HMAC mais comuns
  • Atualiza ao vivo enquanto você digita
  • Adaptado para celular
  • 100% grátis, sem cadastro, sem anúncios

Método 2: Use o OpenSSL na linha de comando

O comando `openssl` está disponível em Linux, macOS e Windows (com Git Bash ou WSL):

```bash echo -n "message" | openssl dgst -sha256 -hmac "mysecretkey" ```

Isso produz uma assinatura HMAC-SHA-256 em hex. Substitua `sha256` por `sha1` ou `sha512` para outros algoritmos.

Método 3: Use uma biblioteca na sua linguagem

Em Node.js, o módulo `crypto` embutido lida com HMAC:

```javascript const crypto = require('crypto'); const hmac = crypto.createHmac('sha256', 'mysecretkey'); hmac.update('message'); console.log(hmac.digest('hex')); ```

Em Python:

```python import hmac, hashlib print(hmac.new(b"mysecretkey", b"message", hashlib.sha256).hexdigest()) ```

Em Go:

```go package main import ("crypto/hmac"; "crypto/sha256"; "encoding/hex"; "fmt") func main() { mac := hmac.New(sha256.New, []byte("mysecretkey")) mac.Write([]byte("message")) fmt.Println(hex.EncodeToString(mac.Sum(nil))) } ```

Perguntas frequentes

HMAC é o mesmo que uma assinatura digital?

Não. HMAC usa uma chave compartilhada, enquanto uma assinatura digital usa criptografia assimétrica (chave pública/privada). HMAC é mais rápido e simples, mas você precisa compartilhar o segredo com segurança com todas as partes que precisam verificar a assinatura.

Qual função hash devo usar?

HMAC-SHA-256 é o padrão moderno. É amplamente compatível, seguro e rápido. HMAC-SHA-1 é considerado legado e só é usado por compatibilidade com sistemas antigos. HMAC-SHA-512 oferece mais segurança para aplicações muito sensíveis.

Uma assinatura HMAC pode ser revertida?

Não. A assinatura é uma função unidirecional. Um atacante não consegue recuperar a mensagem nem a chave a partir da assinatura, mas pode verificar palpites se suspeitar da mensagem. Use chaves longas e aleatórias para maximizar a segurança.

O que acontece se a chave vazar?

Uma chave vazada permite que invasores forjem assinaturas válidas para qualquer mensagem, quebrando completamente a autenticação. Trate chaves HMAC como senhas: armazene com segurança, faça rotação regular e nunca faça commit no controle de versão.

Conclusão

HMAC é uma ferramenta fundamental para APIs seguras e integridade de mensagens. Para um gerador rápido no navegador, a ferramenta de assinatura HMAC do UtilBoxx é a forma mais fácil de calcular e verificar assinaturas.