Calculadora HMAC
Calcula HMAC-SHA256 o HMAC-SHA512 de un mensaje con una clave secreta, en vivo mientras escribes. Salida en hex, entrada UTF-8, admite mensaje vacío.
Tus datos de entrada y archivos no salen del navegador
Clave y mensaje
Pegue el mensaje que desea firmar (por ejemplo, el cuerpo de un webhook) o cargue un ejemplo.
Introduzca una clave secreta: el HMAC se calcula mientras escribe.
En esta página
La Calculadora HMAC obtiene un código de autenticación de mensajes con clave (RFC 2104) con SHA-256 o SHA-512 mientras escribes. Sirve para comprobar firmas de webhooks o reproducir la firma de peticiones de API; la clave y el mensaje no salen del navegador.
Funcionalidad detallada
Escribe una Clave y un Mensaje; ambos se toman como texto UTF-8 tal cual. El resultado se recalcula con cada tecla y al cambiar de algoritmo, y se muestra en hexadecimal en minúsculas: 64 caracteres para HMAC-SHA256 y 128 para HMAC-SHA512. El cálculo lo hace un módulo Rust/WebAssembly dentro de la página.
Un mensaje vacío es una entrada válida: con la clave key, el HMAC-SHA256 de un mensaje vacío es 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, como en OpenSSL y otras bibliotecas. Sin clave la salida queda vacía. Las claves más largas que el bloque del hash (64 bytes en SHA-256, 128 en SHA-512) se hashean primero, como exige el estándar.
El campo de clave solo admite texto, así que un secreto que un servicio entrega en hex o Base64 debe introducirse tal como ese servicio lo usa como clave. Los resultados se comprueban con los vectores de prueba de RFC 4231. No se guarda nada: al recargar, los campos quedan vacíos.
Ejemplos prácticos
Vector de prueba clásico: clave key, mensaje The quick brown fox jumps over the lazy dog, SHA-256 → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.
RFC 4231, caso 2: clave Jefe, mensaje what do ya want for nothing?, SHA-256 → 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.
Mensaje vacío: la clave key con un mensaje vacío da 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, igual que printf '' | openssl dgst -sha256 -hmac key.
Comprobar un webhook: pega el cuerpo original de la petición como mensaje y el secreto del webhook como clave; si el proveedor envía sha256=<hex>, compara solo la parte hex con el resultado.
Cómo usar esta herramienta
Escribe la clave
Escribe o pega el secreto compartido en Clave.
Escribe el mensaje
Pega en Mensaje exactamente los bytes firmados, o déjalo vacío para calcular el HMAC de una cadena vacía.
Elige el algoritmo
Selecciona SHA-256 o SHA-512 en Algoritmo; la Salida se actualiza al momento (o pulsa Calcular).
Copia o limpia
Copiar toma el valor hex; Limpiar vacía ambos campos.
Consejos y mejores prácticas
- Firma exactamente los bytes que firmó el servidor: un JSON reformateado, otro orden de claves o un salto de línea final cambian el HMAC.
- En tu código compara los HMAC en tiempo constante; la comparación visual de aquí es solo para depurar.
- Un secreto pegado con un espacio o salto de línea al final es otra clave; revisa el campo si no coinciden.
- HMAC-SHA512 no es «el doble de seguro» en usos normales: usa el algoritmo que espera la otra parte.
- Si el valor esperado está en Base64, codifica los mismos bytes que la salida hex: convierte uno en otro antes de comparar.