Decodificador CBOR (notación diagnóstica)
Desarrollo
CBOR (Representación Concisa de Objetos Binarios, RFC 8949) es un formato binario compacto que usan WebAuthn/FIDO2, COSE, el trabajo de certificados C509 y muchos protocolos IoT — pero como bytes en bruto es ilegible. Pega los bytes como hex o base64 y esta herramienta los decodifica a notación diagnóstica CBOR, la forma legible estándar de la especificación: enteros y bignums, cadenas de bytes como h'…', cadenas de texto, arrays y mapas anidados, valores etiquetados como 0("2013-03-21T20:04:00Z"), los valores simples false/true/null/undefined, flotantes half/single/double y cadenas, arrays y mapas de longitud indefinida escritos con el marcador _. Valida sobre la marcha y avisa de entrada truncada o de bytes sobrantes tras el primer elemento de datos. El decodificador está comprobado contra toda la tabla de ejemplos del Apéndice A de RFC 8949. Todo corre localmente; no se sube nada.
Error de decodificación CBOR: unexpected end of input
La salida es notación diagnóstica de RFC 8949: cadenas h'…', 1 vs 1.0, tag(contenido) y _ para longitud indefinida.
Cómo usar
- Elige si tu entrada es hex o base64 (también se acepta base64url).
- Pega los bytes CBOR.
- Lee la notación diagnóstica decodificada y cópiala.
Preguntas frecuentes
- ¿Qué es la notación diagnóstica?
- Es la forma de texto legible de un elemento CBOR definida en RFC 8949 §8 — parecida a JSON pero capaz de expresar todo lo que CBOR puede: cadenas de bytes como h'…', enteros frente a flotantes (1 vs 1.0), etiquetas como número(contenido), los valores simples undefined y simple(n), y elementos de longitud indefinida con un guion bajo, p. ej. [_ 1, 2]. Es la forma estándar de mostrar lo que contiene un blob CBOR.
- ¿Cómo obtengo el hex de un valor CBOR?
- Cualquier cosa que emita CBOR te da bytes: un attestationObject de WebAuthn, una COSE_Key o COSE_Sign1, una trama de sensor IoT, etc. Captura esos bytes y pégalos como hex (con o sin espacios o prefijo 0x) o base64. La herramienta ignora los espacios y acepta base64url.
- ¿Por qué muestra 1 y 1.0 de forma distinta?
- CBOR distingue enteros de números de punto flotante a nivel de bytes, y la notación diagnóstica lo preserva: el entero uno es 1, mientras que el flotante es 1.0. Los flotantes de media precisión (2 bytes), simple (4) y doble (8) se decodifican a su valor exacto, incluidos NaN y ±Infinity.
- ¿Qué significan los 'bytes sobrantes'?
- Un mensaje CBOR es un único elemento de datos. Si hay bytes extra tras el primer elemento completo, la herramienta los reporta en vez de ignorarlos en silencio — normalmente significa que la entrada es una secuencia de elementos, se truncó a mitad, o el formato (hex vs base64) es incorrecto.
Herramientas relacionadas
Conversor de Base64 a hexadecimal (y vuelta)
Convierte una cadena Base64 a bytes hexadecimales y hex de vuelta a Base64, con soporte URL-safe, en tu navegador.
Codificador y Decodificador Quoted-Printable
Codifica texto a MIME Quoted-Printable (RFC 2045) o decodifícalo — con escapes =XX, saltos de línea suaves y UTF-8 — todo en tu navegador, con ajuste de línea a 76 caracteres al codificar.
Generador de Hash (SHA)
Genera hashes SHA-1, SHA-256, SHA-384 y SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifica texto para URLs en porcentaje, o decodifica URLs a texto.
Codificador / Decodificador Base64
Codifica texto a Base64 o decodifica Base64 a texto al instante.
Formateador y Validador de JSON
Formatea, embellece, minifica y valida JSON en tu navegador.