Gerador de HMAC
Gere HMAC (Código de Autenticação de Mensagem baseado em Hash) usando algoritmos SHA-256, SHA-384, SHA-512 ou SHA-1 com uma chave secreta
Entrada
Saída
Leia-me
O que é HMAC?
HMAC (Hash-based Message Authentication Code) é uma técnica criptográfica que combina uma chave secreta com uma função de hash para produzir um código de autenticação único. Diferentemente da simples função de hash, o HMAC garante tanto a integridade dos dados quanto a autenticidade—verificando se uma mensagem não foi adulterada e confirmando a identidade do remetente.
O HMAC funciona processando a mensagem através de uma função de hash (como SHA-256) duas vezes, misturada com a chave secreta de uma maneira específica. Essa abordagem de hash duplo o torna resistente a ataques de extensão de comprimento que afetam funções de hash simples.
Como funciona o HMAC?
O algoritmo HMAC segue estas etapas:
- Preparação da chave: Se a chave secreta for mais longa que o tamanho do bloco de hash, ela é primeiro transformada em hash. Se for mais curta, é preenchida com zeros.
- Hash interno: A chave é combinada com XOR com uma constante de preenchimento interno (ipad), depois concatenada com a mensagem e transformada em hash.
- Hash externo: A chave é combinada com XOR com uma constante de preenchimento externo (opad), depois concatenada com o resultado do hash interno e transformada em hash novamente.
A fórmula é: HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))
Esta construção garante que, mesmo se um invasor conhecer o hash de uma mensagem, não poderá forjar um HMAC válido sem conhecer a chave secreta.
Por que usar HMAC em vez de hash comum?
| Recurso | Hash Comum | HMAC |
|---|---|---|
| Integridade de dados | ✓ | ✓ |
| Autenticação | ✗ | ✓ |
| Requer chave secreta | ✗ | ✓ |
| Proteção contra extensão de comprimento | ✗ | ✓ |
| Adequado para autenticação de API | ✗ | ✓ |
Hashes comuns (MD5, SHA-256) apenas verificam se os dados não foram alterados. O HMAC, adicionalmente, comprova que a mensagem veio de alguém que conhece a chave secreta, tornando-o essencial para comunicações seguras.
Compreendendo algoritmos de hash
| Algoritmo | Tamanho de Saída | Nível de Segurança | Desempenho | Recomendação |
|---|---|---|---|---|
| SHA-1 | 160 bits (40 caracteres hex) | Fraco | Mais rápido | Apenas sistemas legados |
| SHA-256 | 256 bits (64 caracteres hex) | Forte | Rápido | Padrão recomendado |
| SHA-384 | 384 bits (96 caracteres hex) | Muito Forte | Moderado | Necessidades de alta segurança |
| SHA-512 | 512 bits (128 caracteres hex) | Muito Forte | Moderado | Segurança máxima |
SHA-256 oferece o melhor equilíbrio entre segurança e desempenho para a maioria das aplicações. SHA-1 é incluído para compatibilidade com sistemas legados, mas deve ser evitado em novas implementações devido a vulnerabilidades conhecidas.
Comparação de formato de saída
Hexadecimal: Usa caracteres 0-9 e a-f. Produz uma string mais longa, mas é mais fácil de ler e depurar. Comum em APIs e registros.
Base64: Usa caracteres A-Z, a-z, 0-9, +, e /. Produz uma string mais curta (aproximadamente 33% mais curta que hex). Comum em tokens JWT e transmissão compacta de dados.
Exemplo para o mesmo HMAC:
- Hex:
5d5d139563c95b5967b9bd9a8c9b8c8d8e8f9a9b9c9d9e9f0a0b0c0d0e0f1011 - Base64:
XV0TlWPJW1lnub2ajJuMjY6Pmpm9nZ6fCgsMDQ4PEQ==
Descrição da ferramenta
Este Gerador de HMAC cria códigos de autenticação criptográfica usando a Web Crypto API para computação segura e local. Insira sua mensagem e chave secreta para gerar instantaneamente assinaturas HMAC com sua escolha de algoritmo de hash (SHA-1, SHA-256, SHA-384 ou SHA-512) e formato de saída (hexadecimal ou base64).
Todo o processamento acontece inteiramente no seu navegador—suas chaves secretas e mensagens nunca são transmitidas para qualquer servidor, garantindo total privacidade e segurança.
[Restante do documento segue o mesmo padrão de tradução]