Base64 和 Hex 编码有什么区别
一句话结论
同样一段二进制,Base64 比 Hex 短 33%。Hex 每字节用 2 个字符,Base64 每 3 字节只用 4 个字符。调试、哈希值展示、颜色值用 Hex(人眼好读),传输与存储用 Base64(省体积)。
核心区别对照
| 字符集 | Base64 | Hex(十六进制) |
|---|---|---|
| 体积膨胀 | 约 +33% | 约 +100%(翻倍) |
| 3 字节原文 | 编码为 4 个字符 | 编码为 6 个字符 |
| 人工可读性 | 差,需要工具解码 | 好,能直接看出字节结构 |
| URL 安全性 | 不安全,需 URL-safe 变体 | 安全,天然无特殊字符 |
| 典型用途 | Data URL、邮件附件、接口传二进制 | 哈希值、颜色码、内存 dump、调试 |
Base64
Base64 把每 3 个字节(24 bit)切成 4 组 6 bit,每组映射到一个可打印字符,体积只膨胀约三分之一。代价是字符集里有 + 和 /,直接放进 URL 或文件名会出事,需要换成 URL-safe 变体(- 和 _,去掉补位等号)。
Hex(十六进制)
Hex 把每字节拆成高 4 位和低 4 位各一个字符,实现极简、零歧义,任何人都能一眼看出字节结构。代价是体积直接翻倍。哈希值、MAC 地址、CSS 颜色码用它,是因为这些场景长度固定且需要人核对,不在乎那点体积。
怎么选
- 接口里传图片 / 文件 / 二进制字段 → 选 Base64
- 展示哈希、校验和、颜色、内存数据 → 选 Hex
- 要放进 URL 或文件名 → 选 Hex,或 Base64 的 URL-safe 变体
相关工具
常见问题
Base64 是加密吗
不是。它只是编码,任何人在一秒内就能解回原文,没有任何保密作用,绝不能用来保护敏感数据。
为什么 Base64 结尾有等号
等号是补位符。原文字节数不是 3 的倍数时,用 1 到 2 个 = 把长度补齐到 4 的倍数。
体积敏感的场景怎么选
Base64 更小(+33% vs +100%),大文件传输差距非常明显。