CBOR Codec
CBOR-Binärdatenformat kodieren und dekodieren
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
Byte-Viewer
Gültige JSON-Daten eingeben, um in CBOR zu kodieren
Container-Längenkodierung
- Compact: Verwendet minimale Bytes (fixmap/fixarray bei ≤23 Elementen)
- Explicit 16-bit: Verwendet immer 2-Byte Länge (0xB9/0x99 Präfix)
- Explicit 32-bit: Verwendet immer 4-Byte Länge (0xBA/0x9A Präfix)
- Indefinite: Verwendet unbestimmte Länge mit Abschlusscode (0xBF...0xFF)
JSON Examples
Kodiertes Ergebnis
JSON-Daten eingeben und auf Kodieren klicken, um CBOR zu generieren
Byte-Viewer
Kodierungsstatistik
CBOR-Datentypen-Referenz
| Haupttyp | Typname | Header-Bytes | Beschreibung |
|---|---|---|---|
| 0 | Vorzeichenlose Ganzzahl | 0x00-0x1B | Nicht-negative Ganzzahlen von 0 bis 2^64-1 |
| 1 | Negative Ganzzahl | 0x20-0x3B | Negative Ganzzahlen von -1 bis -2^64 |
| 2 | Byte-String | 0x40-0x5B | Rohe Binärdaten beliebiger Länge |
| 3 | Text-String | 0x60-0x7B | UTF-8-kodierte Textzeichenfolgen |
| 4 | Array | 0x80-0x9B | Geordnete Sammlung von Datenelementen |
| 5 | Map | 0xA0-0xBB | Schlüssel-Wert-Paare (Objekt) |
| 6 | Tag | 0xC0-0xDB | Semantisches Tag für erweiterte Typen |
| 7 | Simple/Float | 0xE0-0xFB | Boolean, 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-23 | Wert direkt kodiert (0-23) |
| 24 | 1 vorzeichenloses Byte folgt |
| 25 | 2 vorzeichenlose Bytes folgen (Big-Endian) |
| 26 | 4 vorzeichenlose Bytes folgen (Big-Endian) |
| 27 | 8 vorzeichenlose Bytes folgen (Big-Endian) |
| 31 | Unbestimmte 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 |
|---|---|---|
| Compact | A2 ... | 0xA2 = fixmap(2), kleinste Kodierung |
| Explicit 16-bit | B9 00 02 ... | 0xB9 = map16, 2-Byte Länge folgt |
| Explicit 32-bit | BA 00 00 00 02 ... | 0xBA = map32, 4-Byte Länge folgt |
| Indefinite | BF ... FF | 0xBF = 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.
- 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.
- 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 |
|---|---|
| 0 | Standard-Datum/Zeit-String (RFC 3339) |
| 1 | Epoch-basiertes Datum/Zeit (Unix-Timestamp) |
| 2 | Große positive Zahl |
| 3 | Große negative Zahl |
| 32 | URI-Referenz |
| 55799 | Selbstbeschreibendes CBOR (Magic Number) |
Verwandte Tools
Protocol Buffers Tool
Online Protocol Buffers Encoder/Decoder. Parsen Sie .proto-Schemata, kodieren Sie JSON in Binär oder dekodieren Sie Binär in JSON
JSON-Formatierer
Formatieren und validieren Sie JSON-Daten für verbesserte Lesbarkeit und Debugging
Base64-Kodierer/Dekodierer
Schnelles Kodieren und Dekodieren von Base64-Strings mit Unterstützung für Text- und Dateikonvertierung
MQTT-Codec
MQTT-Protokollpakete kodieren und dekodieren mit detaillierter Feldanalyse, Hex-Viewer und Paket-Builder