为什么到处都能见到十六进制
十六进制(base 16)是原始字节常见的人类可读形式。每个字节是两位 hex(00–ff),因此短字符串比二进制更紧凑,同时字节边界仍清晰。网络追踪、内存转储、颜色代码、密码学摘要与文件签名几乎都用 hex 说话。
把文本编成 hex 意味着:按某种字符编码(通常是 UTF-8)取文本字节,再把每个字节打成两位 hex 对。解码则反转该映射。Hex 不是加密;它是字节的透明字母表。任何有解码器的人都能立刻恢复原始字节序列。
本族子工具
- 文本到十六进制 — 将文本的每个 UTF-8 字节编为空格分隔的小写 hex 对,便于调试与线上风格转储。
- 十六进制到文本 — 接受带空格或连续的 hex,并在字节按解码器规则构成有效文本时重建可读文本。
一起使用它们,可确认文档中的转储是否匹配某字符串,或在负载本为纯文本时,把粘贴的捕获片段转回字符。
间距、大小写与前缀
实现在外观上有所不同:
- 大小写。
4a与4A是同一字节。转储常用小写;许多 RFC 用大写。 - 间距。 每两位加空格提高可读性(
48 65 6c 6c 6f)。长度偶数时,连续 hex(48656c6c6f)同样有效。 - 前缀。 语言有时写
0x48或\x48。喂给纯 hex 解码器前请去掉前缀,除非工具文档支持它们。
奇数长度的 hex 字符串对整字节解码无效:没有显式半字节格式时,不存在半个字节。
UTF-8 字节与 Unicode 码点
重要区分:
- 文本的 hex 转储通常是 UTF-8 字节序列。欧元符
€是三个字节e2 82 ac,不是单个代码单元值。 - Unicode 码点 常写成
U+20AC。那与 UTF-8 hex 转储不是同一字符串。
Tool Plaza 的文本↔hex 配对聚焦文本的字节编码(UTF-8),与协议分析器和字符串的 xxd 风格输出一致。若需要码点列表,请改用面向 Unicode 的流程。
日常用途
调试序列化器。 JSON 或 CSV 看起来不对时,hex 能揭示不可见字符:c2 a0(UTF-8 不间断空格)、ef bb bf(UTF-8 BOM)或散落的 00 空字符。
比较摘要与密钥。 SHA-256 摘要与许多 API 密钥以 hex 发布。理解文本如何变成 hex,有助于发现编码不一致(UTF-8 vs UTF-16、被裁掉的换行)。
文件魔数。 PNG 以 89 50 4e 47 开头;JPEG 以 ff d8 ff 开头。即使扩展名说谎,hex 视图也能让这些签名一目了然。
讲授编码。 学生可以把 Hi → 48 69,并把 ASCII 表与线上字节联系起来。
十六进制、Base64 与二进制
| 表示 | 密度 | 典型用途 |
|---|---|---|
| 二进制数字 | 最低 | 比特标志教学 |
| 十六进制 | 中等 | 转储、摘要、颜色 |
| Base64 | 更高 | 把字节嵌入 JSON/XML |
同一批字节,不同字母表。需要人眼查看字节值时选 hex;打入文本协议时选 Base64(见 base64 中心页);单个比特重要时选二进制(binary)。十进制 ASCII 代码(ascii)是 0–127 范围的第三种教学视图。
常见失败模式
- 解码实际代表压缩或加密字节的 hex,却期待可读散文。
- 把 Latin-1 单字节假设与 UTF-8 多字节文本混用。
- 从不带规范化地复制带
:(MAC 地址)或-(某些 GUID)的 UI hex。 - 把 hex 当作在配置文件中隐藏密码的方式——对任何解码器仍是明文。
- 在安全上下文中「为了省空间」截断摘要。
限制与浏览器环境
这些转换器帮助检查并讲授字节编码。它们不验证文档语义结构,也不提供机密性。敏感材料请在本地处理。
小结
十六进制是查看字节的标准透镜。本中心页配对文本→hex 与 hex→文本,便于生成转储,并在字节为文本时还原文字。留意 UTF-8 多字节字符,保持 hex 长度为偶数,规范化分隔符,并按是否需要清晰度、密度或比特可见性,在 hex、Base64 与二进制之间选择。