Base64编码器/解码器
在线编码和解码Base64数据
所有编码和解码都在您的浏览器中本地完成。您的数据永远不会离开您的设备。
深度指南
Base64 文本转换:UTF-8、填充与 URL 安全输出
了解文本转 Base64 的字节计数、宽松输入处理、UTF-8 替代字符和二进制文件限制。
关键数字一览
- 文本编码
- 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 转图片;检查文本字节可用文本转十六进制。
常见问题
什么是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 解码错误。
资料来源
本指南用浅白语言解释已公布的规则,不构成财务、法律或官方意见。政策会变动,做决定前请向上方链接的政府机构核实。