Base64编码器/解码器

在线编码和解码Base64数据

所有编码和解码都在您的浏览器中本地完成。您的数据永远不会离开您的设备。

Advertisement

深度指南

Base64 文本转换:UTF-8、填充与 URL 安全输出

了解文本转 Base64 的字节计数、宽松输入处理、UTF-8 替代字符和二进制文件限制。

最后核实: Markdown 版(供 AI 读取)

关键数字一览

文本编码
UTF-8 字节
字节数可能不同于字符数。
标准带填充长度
4 × ceil(n / 3) 个字符
n 为 UTF-8 输入字节数;短输入增幅可能远超三分之一。
URL 安全输出
使用 - 和 _,省略填充
替换标准 +、/ 并去掉末尾 =。
解码输出
UTF-8 文本
无效字节序列变成替代字符;开头的一个 UTF-8 BOM 会被消耗。

使用控件

粘贴文本,选择标准或 URL 安全输出,再按编码。复选框只控制编码输出;解码无论该选项是否勾选都接受两种字母表。解码时粘贴 Base64 载荷并按解码。复制和下载使用输出区,下载的是文本文件。

文本转换示例

下表由无界面浏览器中的真实页面按钮生成。字节数按 UTF-8 计算,不是 JavaScript 字符串长度。

输入 标准 Base64 UTF-8 字节数
f Zg== 1
Hi SGk= 2
é w6k= 2
中 5Lit 3
அ 4K6F 3
🙂 8J+Zgg== 4

解码行为

解码器去除空白,将 URL 安全字符映射为标准字母表,尽可能补齐填充后调用浏览器解码器。例如带空白和换行的 S G k= 解码为 Hi。这不是严格的规范形式 Base64 验证器。

解码字节交给浏览器默认 UTF-8 TextDecoder 显示。/w== 含无效 UTF-8 字节,会显示为 �,不会因此被当作 Base64 语法错误。77u/QQ== 解码为 A,因为开头的 UTF-8 BOM 被消耗。无效 Base64 语法仍可能报错。

表情示例的 URL 安全输出为 8J-Zgg,标准形式为 8J+Zgg==,两者均可解码。其他协议可能要求填充或特定外层格式,应按接收方协议处理,不能假定对方同样接受本页的宽松输入。

文件、隐私与往返转换

本工具转换文本,不上传文件,也不提供二进制文件下载。完整数据 URL、MIME 头或 JWT 不等于纯 Base64 载荷。应只处理对应载荷;本页不验证令牌签名。

转换在浏览器本地完成,不会为处理上传文本。大输入仍受浏览器内存限制。Base64 是可逆编码,不是加密;获得编码文本的人就能解码。

文本编码会保留空格和换行,完全空输入则被拒绝。文本解码可能替换字节并消耗开头 BOM,因此不是逐字节存档流程。图片请用图片转 Base64或 Base64 转图片;检查文本字节可用文本转十六进制。

Advertisement

常见问题

什么是Base64编码?

Base64是一种编码方案,使用64个字符(A-Z、a-z、0-9、+、/)将二进制数据转换为ASCII文本格式。它通常用于通过基于文本的协议(如电子邮件或HTTP)传输二进制数据,或在文本格式(如JSON或XML)中嵌入二进制数据。Base64不是加密 - 任何人都可以轻松解码它。

Base64编码安全吗?

不,Base64不安全,永远不应用于安全目的。Base64是一种编码方法,而不是加密。任何人都可以将Base64字符串解码回原始数据。它只会使数据对普通观察者不可读。对于真正的安全性,请使用适当的加密算法,如AES或RSA。

什么是URL安全Base64?

URL安全Base64是一种变体,在编码输出中用-替换+,用_替换/。这使得编码字符串可以在URL中安全使用,无需额外编码,因为+和/在URL中具有特殊含义。它通常用于Web令牌(JWT)、URL参数和文件名。

为什么Base64末尾有=填充?

Base64字符串末尾的=字符是填充,以确保编码字符串长度是4的倍数。这是Base64规范所要求的。=字符的数量(0、1或2)取决于原始数据的长度。某些URL安全Base64实现会省略填充。

我可以将图像编码为Base64吗?

本页转换文本,不上传图片文件。编码图片请使用“图片转 Base64”,恢复图片请使用“Base64 转图片”。在此粘贴数据 URL 不会把本页变成图片转换器。

Base64会增加多少数据大小?

n 个 UTF-8 输入字节对应的标准带填充 Base64 长度为 4 × ceil(n / 3) 个字符。长输入的额外开销接近三分之一,短输入可能增加更多。本页 URL 安全输出省略填充。

Base64使用哪些字符?

标准Base64使用64个字符:大写字母(A-Z)、小写字母(a-z)、数字(0-9)、加号(+)和正斜杠(/)。等号(=)用于填充。URL安全Base64用-替换+,用_替换/,以避免与URL特殊字符冲突。

Base64可以处理Unicode和特殊字符吗?

文本先编码为 UTF-8,再转 Base64。解码时按 UTF-8 显示文本,无效字节序列会显示替代字符,开头的一个 UTF-8 BOM 会被消耗。这不是逐字节保真的二进制文件解码器。

此Base64工具对敏感数据安全吗?

是的,从隐私角度来看。所有编码和解码完全在您的浏览器中进行 - 不会向任何服务器发送数据。但是,请记住Base64不是加密。虽然您的数据不会离开您的设备,但任何获得Base64编码字符串的人都可以轻松解码它。

Base64编码的常见用途是什么?

Base64广泛用于电子邮件附件(MIME)、在HTML/CSS中嵌入图像(数据URL)、API身份验证(基本身份验证)、在JSON/XML中存储二进制数据、编码Web令牌(JWT)、在URL参数中传输数据以及在文本列中存储二进制数据的数据库存储。

我可以在没有此工具的情况下解码Base64吗?

是的,可以使用许多编程语言和命令行工具解码Base64。在JavaScript中:atob(base64String),在Python中:base64.b64decode(),在PHP中:base64_decode(),在终端中:echo "string" | base64 -d。此工具提供了一个方便的基于浏览器的界面。

为什么解码Base64时出现错误?

去除空白、转换 URL 安全字符并补齐填充后,格式损坏的 Base64 仍可能报错。本页接受两种字母表。无效 UTF-8 字节会显示替代字符,而不是产生 Base64 解码错误。

资料来源

  1. IETF — RFC 4648 Base64 and URL-safe alphabet
  2. WHATWG — Encoding: TextEncoder and TextDecoder

本指南用浅白语言解释已公布的规则,不构成财务、法律或官方意见。政策会变动,做决定前请向上方链接的政府机构核实。

Advertisement