工具箱

Base64 与 Hex 编码的区别:体积、可读性与适用场景

Base64 和 Hex 都是「二进制转文本」的编码方式,让不可打印的字节流能够安全地在文本协议中传输。两者经常被混为一谈,但在字符集、体积代价和使用习惯上差别很大——选错编码轻则浪费流量,重则让数据在 URL 里被特殊字符截断。

对比维度Base64Hex(十六进制)
字符集64 个字符:A–Z、a–z、0–9、+、/,以 = 作填充符16 个字符:0–9 加上 A–F,每字节固定两位数字
体积膨胀率约 ×4/3(+33%):每 3 字节变成 4 字符固定 ×2(+100%):每 1 字节变成 2 字符
人工可读性低。输出看起来像随机字符串,无法直接对应到具体字节高。每字节两位、按序排列,可直接对照内存转储和协议文档
长度校验长度随原始字节数对 3 取模而变化,末尾可能出现 1–2 个 =,规则较绕长度恒等于字节数×2,一眼即可核对数据完整性
URL 与路径安全标准字母表中的 + / = 在 URL 里有特殊含义,必须改用 URL-safe 变体(- 和 _)或做转义仅含字母和数字,天然安全,可直接放进查询参数或文件名
典型应用邮件附件(MIME)、Data URI 内嵌图片与字体、JWT 载荷、HTTP Basic 认证哈希值展示(MD5/SHA)、MAC 地址、颜色代码、调试器与抓包工具的十六进制视图

何时选 Base64?

需要在文本通道里搬运较大的二进制数据——附件、图片内嵌、令牌载荷——时选 Base64,+33% 的膨胀远小于 hex 的翻倍。注意 Web 场景要换成 URL-safe 字母表,避免 + 和 / 被转义破坏。

何时选 Hex(十六进制)?

数据需要被人阅读、比对或手工核对——哈希指纹、密钥材料、字节级调试——时选 hex。它规则透明、没有填充歧义,几乎所有编程语言都原生支持解析。

相关在线工具

常见问题

Base64 是加密算法吗?

不是。Base64 只是编码,可逆且无需密钥,任何人都可解码。保护数据请使用 AES 等真正的加密算法,Base64 只负责让密文能安全通过文本通道。

为什么哈希值都用十六进制显示?

因为哈希是固定长度的原始字节,hex 每字节恰好两位,长度整齐、便于抄录比对;用 Base64 显示虽然更短,但不同实现的对齐习惯不一,容易引起歧义。

URL 里应该用哪种编码?

优先选 hex 或 Base64 的 URL-safe 变体(用 - 和 _ 替换 + 和 /,去掉填充)。标准 Base64 直接放查询参数会被 + 变空格、/ 截断路径等规则破坏。

延伸说明

一个容易踩的坑:Base64 不是加密。它只是换一种写法表示同样的字节,任何拿到字符串的人都能瞬间还原原文,敏感数据必须先加密再编码。另外两种编码可以互相配合——比如先用 AES 加密文件,再用 Base64 把密文嵌入 JSON;调试密文时又可以用 hex 视图逐字节核对。站内提供 Base64 编解码与十六进制转换工具,全部本地运行,适合快速验证这两种编码之间的差异。

← 返回对比列表