プロトコルとバイナリ形式

CBORデコーダーバイト列の中身を型ごとに確認

Hex、Base64、Base64URL、またはローカルファイルからCBOR項目を一つ読み込み、型ツリーとJSON表現を確認します。

CBORデコーダー

入力

結果

データを入力するか例を読み込んでください。

データはブラウザー内で処理し、アップロードしません。

設定

入力形式を指定してください。完全なCBOR項目を一つだけ読み込みます。

データを入力するか例を読み込んでください。

受信したバイナリに数値のmapキーやタグが含まれる場合、通常のJSONオブジェクトに変換するだけでは意味が抜け落ちます。CBORデコーダーは型とバイト位置を並べて表示するので、どこに何が入っているか追えます。新しい値を作るときはCBORエンコーダーへ切り替え、通常のJSONからCBORを生成します。

CBORデコーダーを使う理由

バイト位置から構造を追う

Hexの並びを型付きツリーに展開します。CBORデコード後もタグ番号と数値のmapキーが残り、文字列のキーへ勝手に置き換えません。

Hexのバイト列が位置付きの型ツリーへ分かれる図

JSONに収まらない型を明記

CBORデコーダーのJSON表現はmapを順序付きentriesで示し、バイト列や大きな整数にも型印を付けます。値を読み違える前に差を確認できます。

バイト列、数値キー、タグが別々の構造として保持される図

入力形式を決めてから型を確かめる

01

文字列の形式を選ぶ

標準はHexです。Base64とBase64URLは明示的に切り替えてください。ファイルは端末内で読み、現在の入力を置き換える前にプレビューします。

02

更新のタイミングを見る

自動変換は変更後350ms待ちます。停止するとCtrl/Cmd+Enterで手動実行でき、古くなった結果はコピーもダウンロードもできません。

03

ツリーとJSONを照合する

ツリーには型とバイト範囲、JSON表示には$cborの型印があります。デコード結果のダウンロードは型付きJSON、エンコード結果は.cborの生バイトです。

読み取りと生成を一画面で

主要な型を読み取る

CBORデコードは整数、浮動小数点数、バイト列、文字列、配列、map、単純値、タグと不定長項目を扱います。

キーの型と順序を見る

CBORとJSONの変換ではmapをentriesとして示し、数値キーや重複キーが通常のオブジェクトで消えないようにします。

通常のJSONを符号化する

JSONからCBORを生成し、HexかBase64をコピーできます。バイナリの.cborファイルもダウンロードできます。

型の表現と解析範囲

一つの項目だけを読む
末尾に別のバイトがあれば位置付きでエラーを出します。連結したCBORシーケンスを自動で分割しません。
型付きJSONは元バイトではない
mapは常に$cbor entries形式です。エンコード側は通常のJSONを受け付け、型印から元の浮動小数点幅や不定長形式を復元しません。
大きな整数は丸めない
安全範囲を超える通常のJSON整数はエンコード時に拒否します。入力は1MiB、1万ノード、64階層までです。
COSEの認証は行わない
CBORとCOSEは異なります。タグを読めても署名やWebAuthnの信頼性は検証できず、URLからの取得も行いません。

CBORデコーダーのよくある質問

通常の数字をエンコードするときに、サイズが予測不可能に変わることがあるのはなぜですか?

CBORは小さな整数を短い形式にでき、値が変わると必要なバイト数も変わります。このツールはエンコード結果のバイト数を表示します。

別のライブラリによって生成されたCBORをデコードできますか?

形式が正しい単一のCBOR項目なら解析できます。未知のタグは番号と中身を表示し、特定ライブラリの独自意味までは推測しません。

不正な形式または切り詰められた入力はどうなりますか?

切れた項目や不正な型はエラーになり、判明したバイト位置を表示します。途中までの結果を成功として出しません。

私のデータはどこかにアップロードされますか?

送信しません。貼り付けたデータもローカルファイルも、このブラウザー内で処理します。

CBORとCOSEの本当の違いは何ですか?

CBORはデータ形式、COSEはCBORを使う署名や暗号化の仕組みです。ここでは構造を見られますが、COSEの署名検証はしません。

疑問が残っていますか?

CBORデコーダーで解析する

手元のCBORを読み取るか、通常のJSONから新しいバイト列を作成します。書き出す前に型印を確認してください。