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

  1. Escribe la clave

    Escribe o pega el secreto compartido en Clave.

  2. Escribe el mensaje

    Pega en Mensaje exactamente los bytes firmados, o déjalo vacío para calcular el HMAC de una cadena vacía.

  3. Elige el algoritmo

    Selecciona SHA-256 o SHA-512 en Algoritmo; la Salida se actualiza al momento (o pulsa Calcular).

  4. 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.