CoderTools

CBOR Codec

CBOR-Binärdatenformat kodieren und dekodieren

🔒 100% Lokale VerarbeitungIhre eingegebenen Daten werden vollständig in Ihrem Browser verarbeitet. Es werden keine Daten auf einen Server hochgeladen.

CBOR-Daten aus Netzwerk-Captures, IoT-Geräten oder API-Antworten einfügen

Beispieldaten

Dekodiertes Ergebnis

CBOR-Daten eingeben und auf Dekodieren klicken, um Ergebnisse zu sehen

CBOR-Datentypen-Referenz

Haupttyp Typname Header-Bytes Beschreibung
0Vorzeichenlose Ganzzahl0x00-0x1BNicht-negative Ganzzahlen von 0 bis 2^64-1
1Negative Ganzzahl0x20-0x3BNegative Ganzzahlen von -1 bis -2^64
2Byte-String0x40-0x5BRohe Binärdaten beliebiger Länge
3Text-String0x60-0x7BUTF-8-kodierte Textzeichenfolgen
4Array0x80-0x9BGeordnete Sammlung von Datenelementen
5Map0xA0-0xBBSchlüssel-Wert-Paare (Objekt)
6Tag0xC0-0xDBSemantisches Tag für erweiterte Typen
7Simple/Float0xE0-0xFBBoolean, null, undefined und Gleitkommazahlen

CBOR-Protokoll-Dokumentation

Was ist CBOR?

CBOR (Concise Binary Object Representation) ist ein binäres Datenserialisierungsformat, definiert in RFC 8949. Als kompakte Alternative zu JSON entwickelt, kodiert CBOR strukturierte Daten in effizientes Binärformat bei Beibehaltung der Kompatibilität mit dem JSON-Datenmodell. Das Format ist selbstbeschreibend, was bedeutet, dass Decoder Daten ohne externe Schema-Definitionen analysieren können. CBOR wurde speziell für eingeschränkte Umgebungen wie IoT-Geräte und eingebettete Systeme entwickelt, wo Bandbreite und Rechenleistung begrenzte Ressourcen sind.

Binäre Kodierungsstruktur

Jedes CBOR-Datenelement beginnt mit einem einzelnen Byte, das zwei Felder enthält: den Haupttyp (3 Bits) und zusätzliche Informationen (5 Bits). Der Haupttyp bestimmt die Datenkategorie (Ganzzahl, String, Array usw.), während die zusätzlichen Informationen die Argumentlänge angeben oder kleine Werte direkt enthalten. Dieses kompakte Header-Design bedeutet, dass einfache Werte wie kleine Ganzzahlen nur ein Byte benötigen.

Zusatzinfo Bedeutung
0-23Wert direkt kodiert (0-23)
241 vorzeichenloses Byte folgt
252 vorzeichenlose Bytes folgen (Big-Endian)
264 vorzeichenlose Bytes folgen (Big-Endian)
278 vorzeichenlose Bytes folgen (Big-Endian)
31Unbestimmte Länge (für Strings, Arrays, Maps)

Container-Längenkodierungsoptionen

CBOR bietet Flexibilität bei der Kodierung von Container-Längen (Arrays und Maps). Obwohl alle gültigen Kodierungen semantisch identische Daten erzeugen, unterscheidet sich die binäre Darstellung. Dieses Tool bietet vier Kodierungsmodi für verschiedene Systemanforderungen.

Kodierungsbeispiel: {"name":"Alice","age":30}

Das gleiche JSON-Objekt kann auf mehrere gültige Arten kodiert werden:

Modus Header-Bytes Beschreibung
CompactA2 ...0xA2 = fixmap(2), kleinste Kodierung
Explicit 16-bitB9 00 02 ...0xB9 = map16, 2-Byte Länge folgt
Explicit 32-bitBA 00 00 00 02 ...0xBA = map32, 4-Byte Länge folgt
IndefiniteBF ... FF0xBF = unbestimmte Map, endet mit 0xFF

Alle vier Kodierungen dekodieren zu identischem JSON. Wählen Sie kompakt für Größeneffizienz, explizite Längen für Protokollkompatibilität oder unbestimmt für Streaming-Szenarien.

CBOR vs JSON Vergleich

Beide Formate repräsentieren dasselbe logische Datenmodell, dienen aber unterschiedlichen Zwecken. CBOR priorisiert kompakte Kodierung und Verarbeitungseffizienz, während JSON menschliche Lesbarkeit und universelle textbasierte Interoperabilität betont.

CBOR-Vorteile
  • Kleinere kodierte Größe (typischerweise 30-50%)
  • Native Unterstützung für Binärdaten
  • Schnelleres Parsen und Kodieren
  • Eingebaute semantische Tags für Daten, URIs usw.
JSON-Vorteile
  • Menschenlesbar und bearbeitbar
  • Universelle Browser-/Sprachunterstützung
  • Einfacheres Debugging und Logging

Häufige Anwendungen

  • IoT-Gerätekommunikation und Sensordatenübertragung
  • WebAuthn/FIDO2-Authentifizierungsprotokolle
  • COSE-Sicherheit (CBOR-Objektsignierung und -Verschlüsselung)
  • CoAP-Messaging (Constrained Application Protocol)
  • Eingebettete Systemkonfiguration und Datenspeicherung

Semantische Tags

CBOR-Tags geben Datenelementen semantische Bedeutung. Tags sind optionale Wrapper, die anzeigen, wie der eingeschlossene Wert interpretiert werden soll, und ermöglichen Typerweiterungen über die grundlegenden Datentypen hinaus.

Tag-Nummer Semantische Bedeutung
0Standard-Datum/Zeit-String (RFC 3339)
1Epoch-basiertes Datum/Zeit (Unix-Timestamp)
2Große positive Zahl
3Große negative Zahl
32URI-Referenz
55799Selbstbeschreibendes CBOR (Magic Number)

Schnellmenü

Keine aktuellen Tools