什么是 Base64 编码?从真实字节开始

理解 Base64 的用途,观察 Hello 如何变成 SGVsbG8=,分清编码与加密。

Base64 是用普通文本字符表示二进制数据的方法。图片、文档和文字最终都可以表示成字节。当系统需要把字节放进文本字段时,Base64 提供一种可逆表示,接收方之后可以解码还原。

一个简单例子

Hello 包含五个 ASCII 字节,编码后是 SGVsbG8=。解码会得到原来的五个字节,再按文本解释成 Hello。末尾等号属于编码结构,不属于原单词。

文本:          Hello
十六进制字节:  48 65 6c 6c 6f
Base64:        SGVsbG8=
还原字节:      48 65 6c 6c 6f

可以先在编码器里输入示例,再把输出复制到解码器,比较结果。接着尝试中文或 emoji。文字必须先通过 UTF-8 等字符编码转换成字节;Base64 本身不定义语言或字符集。

常见应用位置

JSON 中的二进制字段、Data URI 中的内嵌图片,以及某些令牌的可读部分,都可能使用 Base64。具体含义由外层格式提供。单独一串 Base64 不会说明原文件名、MIME 类型、字符编码或可信程度。

Data URI 会增加 data:image/png;base64, 之类前缀。它描述载荷,但不属于 Base64 字母表。某些解码器理解这个封装,另一些只接受逗号之后的部分。应选择对应入口或模式,而不是随意删除陌生字符。

三个常见误解

第一,Base64 不是加密,解码不需要秘密。第二,它不会缩小文件,普通输出通常约大三分之一。第三,解码结果不一定是文字,图片字节显示成“乱码”并不意味着解码失败。

失败时检查原来源、字母表和截断情况;成功后选择合适视图:有效文字用文本,检查字节用 Hex,二进制用文件下载。规范和测试向量见 RFC 4648。