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:
- Vá para utilboxx.com/pt/tools/crypto/hmac
- Digite sua mensagem e chave secreta
- Escolha o algoritmo (SHA-256 por padrão)
- Escolha a codificação de saída (hex ou Base64)
- 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.