CoderTools

Codec CBOR

Codificar e decodificar formato de dados binários CBOR

🔒 100% Processamento localOs dados inseridos são processados inteiramente em seu navegador. Nenhum dado é enviado para qualquer servidor.

Cole dados CBOR de capturas de rede, dispositivos IoT ou respostas de API

Dados de exemplo

Resultado decodificado

Digite dados CBOR e clique em Decodificar para ver os resultados

Referência de tipos de dados CBOR

Tipo maior Nome do tipo Bytes de cabeçalho Descrição
0Inteiro sem sinal0x00-0x1BInteiros não negativos de 0 a 2^64-1
1Inteiro negativo0x20-0x3BInteiros negativos de -1 a -2^64
2String de bytes0x40-0x5BDados binários brutos de comprimento arbitrário
3String de texto0x60-0x7BStrings de texto codificadas em UTF-8
4Array0x80-0x9BColeção ordenada de elementos de dados
5Map0xA0-0xBBPares chave-valor (objeto)
6Tag0xC0-0xDBTag semântica para tipos estendidos
7Simple/Float0xE0-0xFBBooleano, null, undefined e números de ponto flutuante

Documentação do protocolo CBOR

O que é CBOR?

CBOR (Concise Binary Object Representation) é um formato de serialização de dados binários definido na RFC 8949. Projetado como uma alternativa compacta ao JSON, o CBOR codifica dados estruturados em formato binário eficiente mantendo a compatibilidade com o modelo de dados JSON. O formato é auto-descritivo, o que significa que decodificadores podem analisar dados sem definições de esquema externas. O CBOR foi projetado especificamente para ambientes restritos como dispositivos IoT e sistemas embarcados, onde largura de banda e poder de processamento são recursos limitados.

Estrutura de codificação binária

Cada item de dados CBOR começa com um único byte contendo dois campos: o tipo maior (3 bits) e informação adicional (5 bits). O tipo maior determina a categoria de dados (inteiro, string, array, etc.), enquanto a informação adicional indica o comprimento do argumento ou contém valores pequenos diretamente. Este design de cabeçalho compacto significa que valores simples como inteiros pequenos requerem apenas um único byte.

Info adicional Significado
0-23Valor codificado diretamente (0-23)
24Segue 1 byte sem sinal
25Seguem 2 bytes sem sinal (big-endian)
26Seguem 4 bytes sem sinal (big-endian)
27Seguem 8 bytes sem sinal (big-endian)
31Comprimento indefinido (para strings, arrays, maps)

Opções de codificação de comprimento do contêiner

CBOR oferece flexibilidade na codificação de comprimentos de contêineres (arrays e maps). Embora todas as codificações válidas produzam dados semanticamente idênticos, a representação binária difere. Esta ferramenta oferece quatro modos de codificação para diferentes requisitos de sistema.

Exemplo de codificação: {"name":"Alice","age":30}

O mesmo objeto JSON pode ser codificado de várias formas válidas:

Modo Bytes de cabeçalho Descrição
CompactA2 ...0xA2 = fixmap(2), menor codificação
Explicit 16-bitB9 00 02 ...0xB9 = map16, segue comprimento de 2 bytes
Explicit 32-bitBA 00 00 00 02 ...0xBA = map32, segue comprimento de 4 bytes
IndefiniteBF ... FF0xBF = map indefinido, termina com 0xFF

Todas as quatro codificações decodificam para JSON idêntico. Escolha compacto para eficiência de tamanho, comprimentos explícitos para compatibilidade de protocolo, ou indefinido para cenários de streaming.

Comparação CBOR vs JSON

Ambos os formatos representam o mesmo modelo de dados lógico, mas servem propósitos diferentes. O CBOR prioriza codificação compacta e eficiência de processamento, enquanto o JSON enfatiza legibilidade humana e interoperabilidade universal baseada em texto.

Vantagens do CBOR
  • Tamanho codificado menor (30-50% tipicamente)
  • Suporte nativo a dados binários
  • Parsing e codificação mais rápidos
  • Tags semânticas integradas para datas, URIs, etc.
Vantagens do JSON
  • Legível e editável por humanos
  • Suporte universal de navegador/linguagem
  • Debug e logging mais fáceis

Aplicações comuns

  • Comunicação de dispositivos IoT e transmissão de dados de sensores
  • Protocolos de autenticação WebAuthn/FIDO2
  • Segurança COSE (assinatura e criptografia de objetos CBOR)
  • Mensagens CoAP (protocolo de aplicação restrita)
  • Configuração e armazenamento de dados de sistemas embarcados

Tags semânticas

As tags CBOR fornecem significado semântico aos elementos de dados. Tags são wrappers opcionais que indicam como o valor encapsulado deve ser interpretado, permitindo extensões de tipo além dos tipos de dados básicos.

Número da tag Significado semântico
0String de data/hora padrão (RFC 3339)
1Data/hora baseada em época (timestamp Unix)
2Número positivo grande
3Número negativo grande
32Referência URI
55799CBOR auto-descritivo (número mágico)

Menu Rápido

Nenhuma ferramenta recente