开发者工具精选2026-05-10

如何使用 Base64 编码解码器 – 在线编码与解码数据

Base64 编码是那些静默地存在于您使用的几乎每个 Web 应用后台的技术之一,但很少有开发者完全理解它的工作原理或何时正确使用它。本质上,Base64 是一种二进制到文本的编码方案,将任意二进制数据——图片、PDF 文件、音频字节、加密输出——转换为由 64 个可打印 ASCII 字符组成的字符串(A-Z、a-z、0-9、+ 和 /,用 = 进行填充)。目的很简单:许多系统、协议和数据格式设计为仅处理文本,而二进制数据会破坏它们。邮件附件通过期望 7 位 ASCII 文本的 SMTP 服务器传输——Base64 弥补了这一差距。JSON API 无法嵌入原始二进制字节——Base64 将其编码为 JSON 安全的字符串。HTML 和 CSS 数据 URI 让您可以在标记中直接嵌入小图片而无需单独的 HTTP 请求——Base64 使其成为可能。我们的免费在线 Base64 编码器和解码器处理文本到 Base64 和 Base64 到文本的双向转换,支持文件上传以编码图片和文档,自动检测 URL 安全 Base64(将 + 替换为 -,/ 替换为 _,用于 URL 和文件名),并且每个操作完全在您的浏览器中运行。零数据上传到任何服务器,使其对于专有文件、敏感文档和个人数据安全。但理解 Base64 需要知道它的局限性:它是编码而非加密(任何人都可以即时解码),它将数据体积增加约 33%,并且对于超过约 1 MB 的文件不实用。本文解释 Base64 实际上是什么、何时使用它,以及如何避免开发者最常见的错误。

code

Base64编码/解码

免费 · 无需注册

免费试用此工具 →open_in_new

分步指南

1

根据您的目标选择编码模式或解码模式

选择"编码"标签将纯文本或二进制文件数据转换为 Base64 字符串。编码过程接收您的输入,将其分成 6 位组,并根据 Base64 索引表(A=0、B=1、...、Z=25、a=26、...、z=51、0=52、...、9=61、+=62、/=63)将每个组映射到 64 个 ASCII 字符之一。如果输入长度不是 3 字节的倍数,则附加一个或两个 = 填充字符,使输出长度成为 4 个字符的倍数。选择"解码"标签以逆转过程——将 Base64 字符串转换回其原始文本或二进制形式。对于编码,您可以直接在输入字段中输入或粘贴纯文本,或上传文件(图片、PDF、文档、音频文件等)。文件使用 FileReader API 在您的浏览器中本地读取,永远不会传输到任何地方。对于解码,粘贴您想要转换回的 Base64 字符串。工具自动检测输入是标准 Base64(使用 + 和 /)还是 URL 安全 Base64(使用 - 和 _),并无需手动配置即可处理两种变体。

2

提供您的输入并配置可选设置

如果编码文本,在输入区域输入或粘贴您的字符串——工具接受包括 Unicode 字符、表情符号和特殊符号在内的任何文本。如果编码文件,使用文件选择器上传;工具接受最大 1 MB 的文件,这是 Base64 编码的实际上限,因为输出将比输入大约 33%。对于解码,将 Base64 字符串粘贴到输入字段。工具自动从粘贴的字符串中剥离任何空白或换行,因此您可以直接粘贴来自其他工具的多行 Base64 输出而无需预处理。如果您需要 URL 安全输出(用于 URL、JSON Web Tokens 或文件名),启用 URL 安全开关——这将标准 + 字符替换为 -,/ 替换为 _,并可选择省略 = 填充(因为 = 在 URL 查询字符串中有特殊含义)。输入和输出的字符数实时显示,以便您在编码时验证预期的 33% 大小增加,并在解码后的数据大小匹配预期时确认解码成功。

3

复制输出或下载解码后的文件

编码后,点击"复制"将完整的 Base64 字符串复制到剪贴板。输出默认为单个连续字符串(无换行),与您从 JavaScript 的 btoa() 函数或 base64 命令行工具获得的结果匹配。对于解码后的文本输出,原始字符串显示并可复制。对于解码后的二进制文件(图片、PDF 等),不要将解码输出粘贴到文本编辑器中——二进制字节将显示为乱码字符。而是使用"下载为文件"按钮将解码的二进制数据保存为具有正确扩展名的适当文件。工具在有可用信息时保留原始 MIME 类型,因此解码后的 PNG 图片将下载为 .png 文件,可在任何图片查看器中正确打开。对于使用数据 URI 的开发者,工具可以前置适当的 MIME 类型前缀(例如 data:image/png;base64,),以便您将完整的数据 URI 直接复制到 HTML src 属性或 CSS url() 值中。对于 JWT 检查,粘贴 JSON Web Token 的第二段(第一个和第二个点之间的载荷)以解码和检查令牌的声明。

使用技巧与最佳实践

check_circle

Base64 编码将数据体积增加恰好 33.3%(4/3 比率)。每 3 字节的二进制输入产生 4 字节的 Base64 输出。一个 150 KB 的图片变成 200 KB 的 Base64 字符串。对于超过 100 KB 的文件,体积惩罚几乎总是超过嵌入的便利性——使用常规文件 URL 而非数据 URI。

check_circle

Base64 是编码而非加密。任何看到 Base64 字符串的人都可以即时解码——没有密钥、密码或秘密涉及。永远不要使用 Base64 来保护密码、API 密钥或敏感用户数据。如果安全性重要,使用 AES-256-GCM 或类似的认证加密算法,然后可选地将加密的二进制输出进行 Base64 编码以便文本安全的存储或传输。

check_circle

对于 JWT(JSON Web Tokens),每个段(头部、载荷、签名)独立地使用 Base64URL 编码。格式是 header.payload.signature,每个部分由点分隔。将中间段粘贴到我们的解码器中以检查令牌的声明(用户 ID、过期时间、签发者、作用域),无需 JWT 库。

check_circle

在 HTML 或 CSS 中嵌入图片作为数据 URI 时,始终指定正确的 MIME 类型:data:image/png;base64, 用于 PNG 图片,data:image/jpeg;base64, 用于 JPEG,或 data:image/svg+xml;base64, 用于 SVG。不正确的 MIME 类型会导致浏览器误解二进制数据并显示损坏的图片。对于 SVG,考虑使用基于文本的 data:image/svg+xml, 格式而非 Base64——它更小且人类可读。

check_circle

URL 安全 Base64 将 + 字符替换为 -,将 / 替换为 _,使编码后的字符串安全用于 URL、查询字符串参数和文件名,无需百分号编码。标准 + 和 / 在 URL 上下文中有特殊含义(+ 在查询字符串中代表空格,/ 是路径分隔符)。在 URL 中嵌入编码数据时始终使用 URL 安全 Base64。

check_circle

不要对超过 1 MB 的文件进行 Base64 编码。超出该阈值,33% 的体积增加加上浏览器内存开销使编码变慢,并产生数十万字符长的笨重字符串。对于大文件,改用 multipart/form-data 上传、直接文件 URL 或云存储对象 URL。

check_circle

十六进制编码(Base16)是 Base64 的替代方案,使用 16 个字符(0-9、A-F),数据体积翻倍(100% 开销 vs Base64 的 33%)。当您需要紧凑的二进制数据文本表示时使用 Base64。当您需要字节级别的调试可读性时使用十六进制——每个字节恰好变成两个十六进制字符,便于检查单个字节。

check_circle

Base64 字符串末尾的 = 填充字符表示原始数据中最后 3 字节块缺失了多少字节。一个 = 表示 2 字节填充(输入缺少一个完整块的 1 字节)。两个 == 表示 4 字节填充(输入缺少 2 字节)。没有 = 的 Base64 字符串其输入长度恰好能被 3 整除。填充在数学上是解码所需的,但在 URL 安全上下文中可以省略,如果解码器能推断出正确的长度。

check_circle

在邮件系统中,Base64 被 MIME(多用途互联网邮件扩展)标准用于在基于文本的邮件格式中编码二进制附件。当您将图片或 PDF 附加到邮件时,您的邮件客户端将文件 Base64 编码,并用 MIME 头包装,告诉收件人的客户端原始文件类型是什么以及如何解码。这就是您在原始邮件源码中看到的带 Content-Transfer-Encoding: base64 头的同一种 Base64 编码。

常见问题解答

Base64 是一种二进制到文本的编码方法,将任意二进制数据(图片、文件、字节)转换为由 64 个可打印 ASCII 字符组成的字符串:大写字母 A-Z、小写字母 a-z、数字 0-9,以及符号 + 和 /,用 = 进行填充。它在二进制数据必须通过仅为文本设计的系统时使用。最常见的用例是:通过数据 URI 直接在 HTML/CSS 中嵌入图片(避免对小图标和标志的额外 HTTP 请求)、在 JSON 和 XML API 载荷中编码二进制数据(因为 JSON 不能保存原始字节)、通过 MIME 标准将文件附加到邮件(SMTP 服务器历史上仅支持 7 位 ASCII 文本)、在基于文本的数据库或配置文件中存储二进制数据,以及编码 JSON Web Tokens(JWT)的载荷段。Base64 是通用的——每种编程语言都有内置或库支持——其 64 字符字母表专门选择以避免在文本协议中有特殊含义的字符。

Base64 编码弥合了二进制数据和仅文本系统之间的差距——它支撑着数据 URI、邮件附件、JWT 令牌和跨网络的 API 载荷。理解其机制、局限性和安全影响使您成为更有效的开发者。我们的免费工具处理标准和 URL 安全变体的编码和解码,完全在您的浏览器中运行,支持文本和文件。为您的下一个数据 URI、JWT 检查或二进制编码任务加入书签。现在就试试:粘贴任何文本或上传任何文件,即时看到 Base64 输出。

免费试用此工具 →open_in_new