CBOR 解码器 (诊断表示法)
开发
CBOR(简明二进制对象表示,RFC 8949)是 WebAuthn/FIDO2、COSE、C509 证书工作与众多 IoT 协议使用的紧凑二进制数据格式 — 但作为原始字节无法阅读。将字节以 hex 或 base64 粘贴,本工具即把它解码为 CBOR 诊断表示法,即规范中标准的可读形式:整数与大数、h'…' 形式的字节字符串、文本字符串、嵌套的数组与映射、形如 0("2013-03-21T20:04:00Z") 的带标签值、简单值 false/true/null/undefined、half/single/double 浮点数,以及以 _ 标记书写的不定长字符串、数组与映射。它边解码边校验,并在输入被截断或首个数据项之后有多余字节时给出提示。该解码器已对照 RFC 8949 附录 A 的完整示例表验证。全部在本地运行;不上传任何内容。
—
CBOR 解码错误: unexpected end of input
输出为 RFC 8949 诊断表示法:h'…' 字节串、1 与 1.0、tag(内容),不定长项用 _。
使用方法
- 选择输入是 hex 还是 base64(也接受 base64url)。
- 粘贴 CBOR 字节。
- 查看解码后的诊断表示法并复制。
常见问题
- 什么是诊断表示法?
- 它是 RFC 8949 §8 定义的 CBOR 数据项的人类可读文本形式 — 类似 JSON,但能表达 CBOR 的全部:h'…' 字节字符串、整数与浮点的区分(1 与 1.0)、形如 数字(内容) 的标签、简单值 undefined 与 simple(n),以及用下划线书写的不定长项,如 [_ 1, 2]。这是展示 CBOR 数据内容的标准方式。
- 如何获得 CBOR 值的 hex?
- 任何输出 CBOR 的东西都会给你字节:WebAuthn 的 attestationObject、COSE_Key 或 COSE_Sign1、IoT 传感器帧等。捕获这些字节并以 hex(带或不带空格或 0x 前缀)或 base64 粘贴。工具会忽略空白并接受 base64url。
- 为何把 1 与 1.0 分开显示?
- CBOR 在字节层面区分整数与浮点数,诊断表示法保留这一点:整数一是 1,而浮点一是 1.0。半精度(2 字节)、单精度(4)与双精度(8)浮点都解码为其精确值,包括 NaN 与 ±Infinity。
- 「多余字节」是什么意思?
- 一条 CBOR 消息是单个数据项。若首个完整项之后还有多余字节,工具会报告而非默默忽略 — 通常意味着输入是一串项、在项中途被截断,或格式(hex 还是 base64)选错了。
相关工具
Base64 与十六进制互转
在浏览器中将 Base64 字符串转换为十六进制字节,并将十六进制转换回 Base64,支持 URL-safe。
开发00
Quoted-Printable 编码与解码
将文本编码为 MIME Quoted-Printable(RFC 2045)或解码 — 处理 =XX 转义、软换行与 UTF-8 — 全部在浏览器内完成,编码时按 76 字符换行。
开发00
哈希生成器 (SHA)
根据文本生成 SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。
开发00
URL 编码 / 解码
将文本按百分号编码用于网址,或将编码的网址解码为文本。
开发00
Base64 编码 / 解码
即时将文本编码为 Base64,或将 Base64 解码为文本。
开发00
JSON 格式化与校验工具
在浏览器中格式化、美化、压缩并校验 JSON。
开发00