CoderTools

Codec CBOR

Encoder et décoder le format de données binaires CBOR

🔒 100% Traitement localLes données que vous saisissez sont traitées entièrement dans votre navigateur et ne sont envoyées à aucun serveur.

Collez les données CBOR provenant de captures réseau, d'appareils IoT ou de réponses API

Exemples de données

Résultat décodé

Entrez les données CBOR et cliquez sur Décoder pour voir les résultats

Référence des types de données CBOR

Type majeur Nom du type Octets d'en-tête Description
0Entier non signé0x00-0x1BEntiers non négatifs de 0 à 2^64-1
1Entier négatif0x20-0x3BEntiers négatifs de -1 à -2^64
2Chaîne d'octets0x40-0x5BDonnées binaires brutes de longueur arbitraire
3Chaîne de texte0x60-0x7BChaînes de texte encodées en UTF-8
4Tableau0x80-0x9BCollection ordonnée d'éléments de données
5Map0xA0-0xBBPaires clé-valeur (objet)
6Tag0xC0-0xDBTag sémantique pour les types étendus
7Simple/Flottant0xE0-0xFBBooléen, null, undefined et nombres à virgule flottante

Documentation du protocole CBOR

Qu'est-ce que CBOR

CBOR (Concise Binary Object Representation) est un format de sérialisation de données binaires défini dans RFC 8949. Conçu comme une alternative compacte à JSON, CBOR encode les données structurées sous forme binaire efficace tout en maintenant la compatibilité avec le modèle de données JSON. Le format est auto-descriptif, ce qui signifie que les décodeurs peuvent analyser les données sans définitions de schéma externes. CBOR a été spécifiquement conçu pour les environnements contraints comme les appareils IoT et les systèmes embarqués où la bande passante et la puissance de traitement sont des ressources limitées.

Structure d'encodage binaire

Chaque élément de données CBOR commence par un seul octet contenant deux champs : le type majeur (3 bits) et l'information additionnelle (5 bits). Le type majeur détermine la catégorie de données (entier, chaîne, tableau, etc.), tandis que l'information additionnelle indique la longueur de l'argument ou contient directement les petites valeurs. Cette conception d'en-tête compacte signifie que les valeurs simples comme les petits entiers ne nécessitent qu'un seul octet.

Info additionnelle Signification
0-23Valeur encodée directement (0-23)
241 octet non signé suit
252 octets non signés suivent (big-endian)
264 octets non signés suivent (big-endian)
278 octets non signés suivent (big-endian)
31Longueur indéfinie (pour chaînes, tableaux, maps)

Options d'encodage de longueur du conteneur

CBOR offre une flexibilité dans l'encodage des longueurs de conteneurs (tableaux et maps). Bien que tous les encodages valides produisent des données sémantiquement identiques, la représentation binaire diffère. Cet outil propose quatre modes d'encodage pour répondre aux différentes exigences système.

Exemple d'encodage : {"name":"Alice","age":30}

Le même objet JSON peut être encodé de plusieurs façons valides :

Mode Octets d'en-tête Description
CompactA2 ...0xA2 = fixmap(2), encodage minimal
Explicit 16-bitB9 00 02 ...0xB9 = map16, longueur de 2 octets suit
Explicit 32-bitBA 00 00 00 02 ...0xBA = map32, longueur de 4 octets suit
IndefiniteBF ... FF0xBF = map indéfini, se termine par 0xFF

Les quatre encodages décodent vers un JSON identique. Choisissez compact pour l'efficacité de taille, longueurs explicites pour la compatibilité protocole, ou indéfini pour les scénarios de streaming.

Comparaison CBOR vs JSON

Les deux formats représentent le même modèle de données logique mais servent des objectifs différents. CBOR privilégie l'encodage compact et l'efficacité du traitement, tandis que JSON met l'accent sur la lisibilité humaine et l'interopérabilité universelle basée sur le texte.

Avantages de CBOR
  • Taille encodée plus petite (30-50% typiquement)
  • Support natif des données binaires
  • Analyse et encodage plus rapides
  • Tags sémantiques intégrés pour dates, URI, etc.
Avantages de JSON
  • Lisible et modifiable par l'homme
  • Support universel navigateur/langage
  • Débogage et journalisation plus faciles

Applications courantes

  • Communication des appareils IoT et transmission de données de capteurs
  • Protocoles d'authentification WebAuthn/FIDO2
  • Sécurité COSE (signature et chiffrement d'objets CBOR)
  • Messagerie CoAP (protocole d'application contrainte)
  • Configuration et stockage de données des systèmes embarqués

Tags sémantiques

Les tags CBOR fournissent une signification sémantique aux éléments de données. Les tags sont des enveloppes optionnelles qui indiquent comment la valeur encapsulée doit être interprétée, permettant des extensions de type au-delà des types de données de base.

Numéro de tag Signification sémantique
0Chaîne date/heure standard (RFC 3339)
1Date/heure basée sur l'époque (timestamp Unix)
2Grand nombre positif
3Grand nombre négatif
32Référence URI
55799CBOR auto-descriptif (nombre magique)

Menu Rapide

Aucun outil récent