Generador HMAC
Genera firmas HMAC usando SHA-256/384/512 con mensaje y clave secreta.
Acerca de esta herramienta
HMAC (Código de Autenticación de Mensaje Basado en Hash) es una técnica criptográfica utilizada para verificar la integridad y autenticidad de datos en tránsito o en reposo. Al combinar una clave secreta con un mensaje, HMAC produce una firma única que demuestra que los datos no han sido alterados y que solo alguien con la clave secreta podría haberla creado. Esto lo hace esencial para asegurar APIs, validar webhooks, firmar credenciales y proteger comunicaciones sensibles en Internet.
Para usar esta herramienta, ingrese su mensaje en el campo de texto y proporcione una clave secreta que comparta con el destinatario. Elija el algoritmo hash (SHA-256, SHA-384 o SHA-512) según sus requisitos de seguridad, luego haga clic en "Generar HMAC" para producir la firma. El hash resultante puede enviarse junto con sus datos para que el destinatario pueda verificar la autenticidad generando el mismo HMAC con su copia de la clave secreta.
HMAC es ampliamente utilizado por procesadores de pagos, API en la nube (AWS, Google Cloud, Stripe) y sistemas de comunicación en tiempo real para prevenir manipulaciones y confirmar el origen del mensaje. La variante SHA-256 proporciona seguridad sólida para la mayoría de casos de uso, mientras que SHA-384 y SHA-512 ofrecen margen de seguridad adicional para aplicaciones altamente sensibles. Recuerde que la seguridad de HMAC depende completamente de mantener su clave secreta privada: nunca la comparta a través de canales inseguros.
Preguntas Frecuentes
Implementación 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.