Saltar al contenido
BCBinary Code Translator
Menú

Utilidad criptográfica

Generador HMAC SHA-256, SHA-384 y SHA-512

Crea HMAC con clave y datos UTF-8 mediante Web Crypto y salida Hex o Base64, sin persistir intencionadamente la clave.

La clave solo se usa en la operación actual; no se registra, guarda ni envía a un servicio externo.

La clave no se persiste. Evita secretos reales de producción en una sesión general de navegador.

Cómo generar un HMAC

Introduce el secreto compartido y el mensaje exactamente como define el protocolo, selecciona SHA-2 y la codificación y genera. Una diferencia de espacio, salto o codificación cambia el código.

  1. Pega la clave literal solo si el protocolo indica texto UTF-8; una clave Hex o Base64 suele representar bytes y debe decodificarse.
  2. Pega los datos exactos, incluidos saltos, separadores, marca temporal y representación canónica.
  3. Elige SHA-256, SHA-384 o SHA-512 y Hex o Base64 según el protocolo.
  4. Genera, compara el código completo y limpia clave y portapapeles al terminar.

Ejemplos y comportamiento esperado

Entrada Salida Notas
Clave Jefe Datos what do ya want for nothing? HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75… Vector RFC 4231, caso 2.
Clave secret Datos message HMAC determinista Mismos bytes, algoritmo y codificación producen el mismo valor.
Clave secret Datos Message HMAC diferente Cambiar mayúsculas cambia los bytes.
Clave secreto Datos Hola 👋 HMAC UTF-8 Caracteres internacionales se codifican en UTF-8.
Salida Hex Dos caracteres por byte HMAC-SHA-256 tiene 64 caracteres Hex.
Salida Base64 Base64 de los mismos bytes La codificación no cambia el resultado criptográfico.

Qué proporciona HMAC

HMAC combina una clave secreta con una función hash. Quien tiene la misma clave puede recomputar el código y detectar cambios; un tercero sin la clave no debería poder autenticar un mensaje modificado.

Aporta integridad y autenticidad compartida, no cifrado. El mensaje sigue legible y no garantiza el no repudio porque todos los poseedores de la clave pueden generar códigos. Para verificación pública usa firmas digitales.

  • HMAC-SHA-256 usa SHA-256 dentro de la construcción.
  • La longitud coincide con el hash subyacente.
  • La confidencialidad requiere cifrado separado.

Representación y gestión de claves

El campo se interpreta como texto UTF-8. Una cadena Hex o Base64 suele ser una codificación de bytes de clave; usar sus caracteres literalmente produce otro HMAC. Decodifica según el protocolo o usa una herramienta con opción de codificación de clave.

La seguridad depende de entropía, almacenamiento y rotación. Usa claves aleatorias, gestor de secretos, acceso mínimo, identificadores de clave y revocación. Nunca incluyas claves en el control de versiones, repositorios ni tickets.

  • Distingue bytes crudos de texto codificado.
  • Evita contraseñas humanas como claves directas.
  • Planifica rotación de webhooks.

Bytes canónicos y UTF-8

HMAC autentica bytes. Saltos de línea, espacios, normalización Unicode, orden JSON, URL encoding o formato temporal cambian el resultado. Reformatear JSON antes de verificar suele romper la firma.

Usa el cuerpo bruto o la cadena exacta definida, con separadores y ceros iniciales. No conviertas segundos a milisegundos por tu cuenta. La mayoría de fallos de integración son de canonicalización.

  • CRLF y LF son distintos.
  • Un salto final cambia el código.
  • Unicode visualmente igual puede tener otra normalización.

Algoritmo y codificación

Se admiten HMAC-SHA-256, 384 y 512. Usa el algoritmo requerido. SHA-256 es común, pero un diseño nuevo debe seguir un estándar revisado.

Hex y Base64 representan los mismos bytes. Base64 estándar no es Base64url. Sigue exactamente el alfabeto, el relleno y las mayúsculas o minúsculas que espera el verificador.

  • HMAC-SHA-256 produce 32 bytes.
  • El uso de mayúsculas o minúsculas en hexadecimal depende del protocolo.
  • Base64 estándar usa +, / y relleno.

Verificación de webhooks y APIs

Un verificador robusto lee el cuerpo bruto, extrae tiempo y key ID, reconstruye el mensaje, calcula HMAC y compara en tiempo constante. También valida frescura y replay.

Esta página sirve para vectores y depuración, no como endpoint. No expongas secretos de producción en una sesión compartida; verifica en el servidor antes de ejecutar acciones.

  • Verifica bytes brutos cuando el protocolo lo exige.
  • Rechaza tiempos antiguos.
  • Compara en tiempo constante.
  • Selecciona la clave por ID durante rotación.

Errores, límites y manejo seguro

Se rechaza una clave vacía y se requiere Web Crypto. Clave y mensaje permanecen en estado de la página, sin persistencia intencionada. Limpiar no borra gestores del portapapeles ni grabaciones.

Solo se admite texto, no claves binarias o archivos. No deriva claves, no trunca tags, no compara ni gestiona replay. Para secretos de alta sensibilidad usa un entorno local auditado.

  • No pegues secretos reales en equipos compartidos.
  • Limpia el portapapeles.
  • No trunques HMAC salvo que el protocolo lo defina.

Diferencias con hash y cifrado

Un hash plano no tiene clave. HMAC es una construcción estándar y no debe reemplazarse por hash(clave || mensaje), que puede tener debilidades estructurales.

El cifrado oculta contenido; HMAC autentica pero no oculta. Usa cifrado autenticado revisado si necesitas ambas propiedades y no inventes un protocolo propio.

Preguntas frecuentes

¿HMAC es hash de clave más mensaje?

No. Es una construcción estándar con rellenos interno y externo. Concatenar y calcular un hash puede ser vulnerable a propiedades como la extensión de longitud.

¿Se suben o guardan la clave y el mensaje?

No intencionadamente. Se codifican en el navegador y se pasan a Web Crypto, sin localStorage ni servidor. Extensiones y portapapeles quedan fuera.

¿Puedo pegar una clave Hex o Base64?

Solo si el protocolo dice que esos caracteres son la clave. Normalmente codifican bytes y hay que decodificarlos. El campo interpreta UTF-8 literal.

¿Por qué cambia al formatear JSON?

HMAC autentica bytes exactos. Espacios, orden, saltos y escapes cambian esos bytes. Usa el cuerpo bruto o la cadena canónica definida.

¿Evita replay?

No por sí solo. Autentica también un timestamp, nonce o ID y aplica una ventana o registro de reutilización.

¿Cifra el mensaje?

No. Aporta integridad y autenticidad con secreto compartido, pero el contenido sigue legible.

Herramientas relacionadas

Ver todas las herramientas

Preferencias de cookies

Gestiona tus preferencias de cookies. Las cookies necesarias no se pueden desactivar.

Necesarias

Necesarias

Necesarias para la selección de idioma, las preferencias de privacidad y las funciones básicas del sitio.

Cookies: NEXT_LOCALE

Analíticas

Cookies analíticas opcionales que nos ayudan a entender el tráfico y mejorar el sitio.

Cookies: _ga, _gid, _gat, _clck, _clsk

Publicidad

Cookies publicitarias opcionales que pueden usarse para mostrar anuncios relevantes y medir su rendimiento.

Cookies: __gads, _gcl_au, IDE