通过MCP连接 →

输入计算

数学公式

广告

结果

Base64 编码后大小
1,336
字节
原始大小 1,000 bytes
额外开销 33.6 %

什么是 Base64 编码大小计算器?

Base64 是一种编码方式,使用 64 个可打印的 ASCII 字符来表示二进制数据。它被广泛用于在 HTML/CSS 中内嵌图片(data URI)、在电子邮件中附加文件(MIME),以及在 JSON 或令牌(Token)中传输二进制内容。由于 Base64 会把每 3 个字节的输入转换成 4 个输出字符,编码后的结果始终比原始数据更大——大约会膨胀 33%。这个计算器能精确告诉你数据编码后会变成多大。

如何使用

输入原始文件或数据的大小,选择单位(字节、KB、MB 或 GB),再选择输出是否使用标准填充符(结尾的 = 字符)。计算器会返回编码后的字节数,以及编码所带来的额外开销百分比。

计算公式解析

标准 Base64 以每 3 个字节为一组处理输入。每一组都会变成正好 4 个字符,最后不足 3 字节的那一组会用 = 补齐到 4 个字符。因此含填充时的大小为:

$$\text{Encoded Bytes} = 4 \times \left\lceil \frac{\text{Size} \times \text{Unit}}{3} \right\rceil$$

如果关闭填充,则只生成实际需要的字符:$$\text{Encoded Bytes} = \left\lceil \frac{4 \times \text{Size} \times \text{Unit}}{3} \right\rceil$$,相比之下每次编码可省去 1~2 个填充字符。

展示 3 个输入字节转换为 4 个 Base64 输出字符的示意图
Base64 将每 3 个输入字节转换为 4 个输出字符(这就是体积增加约 33% 的原因)。

实例演示

假设你有一个 1,000 字节的文件。先除以 3 得到 333.33,向上取整(ceil)为 334,再乘以 4:\(334 \times 4 = 1{,}336\) 字节。额外开销为 \((1336 - 1000) / 1000 = 33.6\%\)。如果不使用填充,结果则为 \(\lceil 4000/3 \rceil = \lceil 1333.33 \rceil = 1{,}334\) 字节。

对比原始文件大小与更大的 Base64 编码大小的柱状图
编码后的输出比原始输入大约大 33%。

关键术语解释

Base64
一种二进制到文本的编码方案,使用一组64个可打印的ASCII字符(A–Z、a–z、0–9,加上+/)来表示任意二进制数据。它允许二进制内容安全地通过仅文本的通道传输,例如电子邮件正文、JSON、XML和URL。
3字节组/4字符块
Base64以固定分组工作。每3个字节(24位)的输入被分成四个6位块,每个块映射到一个Base64字符。因此3个输入字节总是变成4个输出字符——这是编码大小增长的根本原因。
填充(=
当输入长度不是3的整数倍时,最后的分组是不完整的。编码器附加一个或两个=字符,以便输出长度保持为4的倍数。一个剩余字节产生两个=;两个剩余字节产生一个=
开销
Base64与原始数据相比增加的额外大小。因为3个字节变成4个字符,编码数据大约是\(4/3 \approx 1.333\)倍大,增加了大约33%(一旦计算填充和任何换行符,会略多一些)。
数据URI
一种URL方案(例如data:image/png;base64,iVBORw0KGgo…),可以将文件的Base64编码内容直接嵌入到文档中,从而无需为小资源发出单独的网络请求。
MIME换行
在电子邮件(MIME)编码中,Base64输出被分成最多76个字符的行,每行以CRLF结尾。这些换行符在基本33%的扩展之外增加了少量额外的大小。
ASCII字符
来自7位ASCII集合的单个字符,以一个字节编码。Base64输出中的每个字符都是ASCII字符,因此以字符为单位的编码长度等于以字节为单位的长度。

常见问题

为什么 Base64 总是更大? 每 6 比特的数据会被映射成一个 8 比特的 ASCII 字符,因此损失了 25% 的效率,导致字节数大约增加 33%。

计算结果是否包含换行符? 不包含。某些 MIME 编码器会每隔 76 个字符插入一个换行符,这会带来一点点额外体积。本工具只计算原始编码后的大小。

那 data URI 呢? data URI 还会在前面加上类似 data:image/png;base64, 的前缀。把这段字符串的长度加到编码后的大小上,就能得到完整 URI 的长度。

最后更新: