什么是 Base64 编码?
Base64 是一种「二进制转文本」的编码方式,它只用 64 个可打印的 ASCII 字符来表示任意字节数据:A-Z、a-z、0-9,再加上 + 和 /。它的应用非常广泛:在 HTML/CSS 中以 data URI 形式内嵌图片、通过邮件发送二进制附件(MIME)、用于 JSON Web Token(JWT),以及任何需要让二进制数据安全地经过纯文本通道传输的场景。本工具可对你输入的任意文本进行编码——会先计算出 UTF-8 字节,再进行 Base64 编码。
如何使用本编码器
在输入框中键入或粘贴文本,然后提交即可。本工具会把文本转换为 UTF-8 字节,套用标准 Base64 算法,并返回编码后的字符串,同时显示输入字节数和输出字符数。
编码原理详解
编码器每次读取三个输入字节。三个字节共 24 位,恰好可平均拆分为四组 6 位数据。每组 6 位的值(0–63)对应字符集中的一个字符,从而生成一个输出字符。当输入长度不是 3 的整数倍时,算法会对最后一组进行填充:若剩下 1 个字节,则输出 2 个字符再加 ==;若剩下 2 个字节,则输出 3 个字符再加 1 个 =。因此输出长度始终为 $$\text{Base64} = \operatorname{encode}_{64}\!\left(\text{Text}\right), \qquad L_{out} = 4 \left\lceil \frac{L_{in}}{3} \right\rceil$$
实例演示
以编码文本 Man 为例。它的 ASCII 字节为 77、97、110 → 二进制 01001101 01100001 01101110。按 6 位一组拆分:010011 = 19 → T、010110 = 22 → W、000101 = 5 → F、101110 = 46 → u。结果为 TWFu——输入 3 个字节,输出 4 个字符,无需填充。
常见问题
为什么我的输出结尾有 = 号?当你的输入不是 3 字节的整数倍时,填充字符会补齐最后一组,使输出长度保持为 4 的倍数。
Base64 会加密我的数据吗?不会。Base64 只是编码,并非加密——任何人都能将其解码还原。它的作用仅仅是让二进制数据能以文本形式安全传输。
为什么输出比输入更长?Base64 会让数据膨胀约 33%,因为每 3 个字节都会变成 4 个字符。