Gerador HMAC
Gera assinaturas HMAC usando SHA-256/384/512 com mensagem e chave secreta.
Sobre esta ferramenta
HMAC (Código de Autenticação de Mensagem Baseado em Hash) é uma técnica criptográfica usada para verificar a integridade e autenticidade de dados em trânsito ou em repouso. Ao combinar uma chave secreta com uma mensagem, HMAC produz uma assinatura única que prova que os dados não foram alterados e que apenas alguém com a chave secreta poderia tê-la criado. Isso o torna essencial para proteger APIs, validar webhooks, assinar credenciais e proteger comunicações sensíveis na Internet.
Para usar esta ferramenta, insira sua mensagem no campo de texto e forneça uma chave secreta que você compartilha com o destinatário. Escolha o algoritmo hash (SHA-256, SHA-384 ou SHA-512) com base em seus requisitos de segurança e clique em "Gerar HMAC" para produzir a assinatura. O hash resultante pode ser enviado junto com seus dados para que o destinatário possa verificar a autenticidade gerando o mesmo HMAC com sua cópia da chave secreta.
HMAC é amplamente usado por processadores de pagamento, APIs em nuvem (AWS, Google Cloud, Stripe) e sistemas de comunicação em tempo real para prevenir adulteração e confirmar a origem da mensagem. A variante SHA-256 fornece segurança robusta para a maioria dos casos de uso, enquanto SHA-384 e SHA-512 oferecem margem de segurança adicional para aplicações altamente sensíveis. Lembre-se de que a segurança do HMAC depende inteiramente de manter sua chave secreta privada — nunca a compartilhe por canais inseguros.
Perguntas Frequentes
Implementação de Código
import hmac
import hashlib
import base64
import secrets
# Generate HMAC-SHA256
key = secrets.token_bytes(32) # 256-bit random key
message = "Hello, World!"
# Raw hex output
mac = hmac.new(key, message.encode(), hashlib.sha256)
print("HMAC-SHA256 (hex):", mac.hexdigest())
# Base64 output (common for API signatures)
mac_b64 = base64.b64encode(mac.digest()).decode()
print("HMAC-SHA256 (b64):", mac_b64)
# HMAC-SHA512
mac512 = hmac.new(key, message.encode(), hashlib.sha512)
print("HMAC-SHA512 (hex):", mac512.hexdigest())
# Constant-time verification (prevents timing attacks)
def verify_hmac(key: bytes, message: str, expected: str) -> bool:
computed = hmac.new(key, message.encode(), hashlib.sha256).hexdigest()
return hmac.compare_digest(computed, expected)
signature = mac.hexdigest()
print("Valid: ", verify_hmac(key, message, signature)) # True
print("Invalid:", verify_hmac(key, "tampered", signature)) # FalseComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.