十六进制编码/解码器

十六进制(Hex)编码使用 16 个符号(0-9 和 A-F)表示二进制数据。每个字节变成两个十六进制字符。此工具解码十六进制字符串以显示原始内容,使用魔术字节识别文件类型,并提供类似十六进制编辑器的查看器用于二进制检查。

常见用例

  • 解码来自 API 和日志的十六进制编码数据
  • 检查二进制文件头和魔术字节
  • 分析网络数据包载荷
  • 调试加密值(哈希、密钥、IV)
  • 查看数据库或文件中的原始二进制数据
  • 转换调试工具输出的十六进制转储

功能

  • 解码多种格式的十六进制字符串(纯文本、空格分隔、0x 前缀、冒号分隔、C 数组)
  • 带偏移量、十六进制字节和 ASCII 表示的十六进制查看器
  • 自动检测解码后的内容类型(JSON、XML、文本等)
  • 链式检测——自动检测解码内容并提供"解码为 X"按钮
  • 使用魔术字节识别二进制数据的文件类型
  • 大文件的虚拟滚动和懒加载块
  • 在不同十六进制格式之间转换(纯文本、空格分隔、0x、冒号、C 数组)
  • 将文本编码为多种格式的十六进制

示例

十六进制表示的 JSON

试试看 →

一个解码后为 JSON 对象的十六进制字符串。

7b226e616d65223a22746573742e6a736f6e227d

空格分隔的十六进制

试试看 →

空格分隔的十六进制字节(常见于调试输出)。

48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21

PDF 文件头

试试看 →

表示 PDF 文件签名的十六进制字节。

25504446 2d312e34 0a312030 206f626a

C 风格数组

试试看 →

格式化为 C 数组的十六进制字节。

0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x21

MAC 地址风格

试试看 →

类似 MAC 地址的冒号分隔十六进制字节。

de:ad:be:ef:ca:fe

提示

  • 十六进制编码使数据大小翻倍(每个字节变成 2 个字符)。
  • 常见魔术字节:PDF 以 25504446(%PDF)开头,ZIP 以 504B0304 开头。
  • 图像数据(PNG、JPEG 等)会被自动检测并使用图像分析器工具。
  • 0x 前缀在大多数编程语言中表示十六进制。
  • MAC 地址和 UUID 使用冒号或连字符分隔符。
  • 十六进制不区分大小写:0xFF 等于 0xff。

理解 十六进制编码/解码器

十六进制(Hex)编码使用 16 进制表示法来表示二进制数据,其中每个字节精确映射到由 0-9 和 A-F 组成的两个字符。这种直接的字节到文本映射使十六进制成为调试、密码学、网络和底层编程中二进制数据的标准表示。

与 Base64 使用 6 位分组模糊了字节边界不同,每对十六进制字符精确映射到一个字节,使得读取单个值变得简单。内存地址、寄存器内容、网络数据包转储、文件头和加密值都通常以十六进制显示。

十六进制字符串出现在多种格式中。纯十六进制(48656c6c6f)常见于 API。空格分隔的十六进制(48 65 6c 6c 6f)出现在数据包捕获中。冒号分隔的十六进制(48:65:6c:6c:6f)用于 MAC 地址和证书指纹。0x 前缀(0x48、0x65)是 C、JavaScript、Python 和大多数语言中的标准十六进制字面量。C 风格数组({0x48, 0x65})在源代码中嵌入二进制数据。

文件类型识别依赖魔术字节——文件开头的特定十六进制序列,用于标识文件格式。PDF 以 25504446(%PDF)开头,PNG 以 89504E47 开头,ZIP 以 504B0304 开头,ELF 可执行文件以 7F454C46 开头。识别这些签名对于调试文件处理代码和分析二进制数据至关重要。

十六进制和 Base64 都将二进制数据编码为文本,但它们有不同的取舍。十六进制将每个字节映射到 2 个字符,使数据大小翻倍(100% 开销),而 Base64 将每 3 个字节映射到 4 个字符,仅约 33% 的开销。Base64 对于大数据更节省空间,使其成为在文本格式中嵌入二进制内容的更好选择。十六进制对于字节级检查更具可读性,使其成为调试、加密值和协议分析中个别字节值重要的场景的标准。

魔术字节(也称文件签名)是文件最开头的特定字节序列,无论文件扩展名如何都能标识其格式。PNG 文件以 89 50 4E 47 开头,JPEG 以 FF D8 FF 开头,ZIP 以 50 4B 03 04 开头。Unix 的 "file" 命令依赖魔术字节来检测文件类型,此工具也使用同样的技术来识别十六进制数据中的二进制内容。

十六进制不区分大小写,因为数字 A-F 表示值 10-15,无论是大写还是小写——0xFF 和 0xff 都表示十进制 255。大小写的选择纯粹是惯例:大写常见于规范和哈希输出,而小写常见于 CSS 颜色和 URL 编码等 Web 开发上下文中。0x 前缀在大多数编程语言中表示十六进制数字字面量,包括 C、C++、Java、JavaScript、Python、Go 和 Rust。没有前缀时,像 "10" 这样的值在十进制和十六进制之间会产生歧义;写成 0x10 则明确表示十六进制(十进制 16)。

← 返回所有工具