mikaio.dev

Base64 Encoder / Decoder

Enter text or Base64 and click Encode or Decode.

即时编码与解码Base64

Base64是计算机世界里一种基础的编码方式,用来把二进制数据安全地转换成文本形式。不管是调试API接口、分析网络请求,还是理解JWT令牌、给HTML内嵌图片,几乎都会碰到Base64。这个工具能一键把任意文本编码成Base64,也能把任意Base64字符串解码回原文。

什么是Base64

Base64是一种"二进制转文本"的编码方案,只用64个可打印的ASCII字符来表示二进制数据:26个大写字母(A-Z)、26个小写字母(a-z)、10个数字(0-9),再加上+和/两个符号,一共64个;另外还有一个用来补位的字符=。

"Base64"这个名字就来自它使用了64个不同的字符。每个Base64字符代表6个比特的数据(2的6次方正好是64)。因为一个字节是8比特,所以每3个字节的原始数据,编码后正好变成4个Base64字符。

Base64为什么会存在

许多历史悠久的文本协议和系统只能安全处理ASCII文本,处理不了任意的二进制字节。电子邮件(SMTP)、URL、HTTP头和XML都能安全地传输文本,但图片、音频文件、加密密钥或压缩数据这类二进制内容,如果不经编码就直接塞进这些通道,很可能会出错或损坏。

Base64的作用就是把任意二进制数据转换成一小撮所有文本系统都能安全存储和传输的ASCII字符。

常见用途

Data URI:图片可以直接嵌入HTML或CSS里,不用再单独发起一次文件请求。Data URI以data:image/png;base64,开头,后面跟着Base64编码的图片数据。

邮件附件(MIME):邮件附件在通过MIME协议传输时会先经过Base64编码。

JSON接口:二进制数据(图片、文件、签名信息)如果要放进JSON传输,必须先做Base64编码,因为JSON本身只能装文本。

HTTP基本认证:Authorization请求头会把凭据编码成Base64(用户名:密码)的形式发送。但这只是编码,并不是加密,单独使用并不安全,仍然需要HTTPS配合。

JWT令牌:JSON Web Token由三段用点号分隔的Base64URL编码内容组成——头部、载荷和签名。

数据库存储:一些以文本为基础的存储格式(比如某些NoSQL数据库或配置文件)常常会把二进制数据块用Base64编码后再存进去。

Base64与Base64URL的区别

标准Base64使用+和/这两个字符,但它们在URL里有特殊含义。Base64URL把这两个字符分别替换成-和_,让编码结果可以安全地放进URL。JWT令牌用的就是Base64URL,而且通常还会省略末尾的=补位字符。

安全提醒

Base64不是加密。任何拿到Base64编码数据的人,都可以立刻用任意一个Base64解码工具把它还原出来。千万不要用Base64来"隐藏"敏感信息,真正需要保密时请使用正规的加密手段。

使用方法

在编码框里粘贴文本,立刻就能得到对应的Base64表示;或者把一段Base64字符串粘贴到解码框里,立刻还原出原文,两个方向都会随输入实时更新。这对快速查看JWT里到底装了什么、确认一个data URI的实际内容,或者准备一个需要在纯文本通道(比如URL参数或JSON字段)里安全传输的值,都很方便。

Base64编码的具体步骤

Base64把二进制数据转成文本的过程很直接:先把二进制数据按每3个字节(24比特)分组,再把每24比特拆成四个6比特的小组;把每个6比特的值(范围是0到63)在Base64字母表里查出对应字符,其中A=0、B=1一直到Z=25,a=26到z=51,0=52到9=61,+=62,/=63。如果输入的字节数不是3的整倍数,末尾会补上=字符凑齐最后一组。由于3字节变成4个Base64字符,编码后数据大小会膨胀约33%——一个1MB的二进制文件编码成Base64后大约会变成1.37MB的文本。

Data URI与内嵌图片

Base64在网页上最常见的用法之一就是data URI,它能把一个文件直接嵌进HTML或CSS,而不用单独引用一个外部文件,格式类似data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...。这样可以省掉一次额外的HTTP请求,对小图标和小图片能提升一点性能。不过Base64数据没法脱离所在页面单独缓存,再加上大约33%的体积膨胀,用在大图片上反而得不偿失,所以这种做法一般只用于比较小的资源。

私密且即时

编码和解码完全在浏览器里通过内置的btoa和atob函数完成,结果即时呈现,你编码或解码的任何数据都不会被发送到任何地方。

Base64 FAQ

What is Base64?
Base64 is an encoding scheme that converts binary data into ASCII text using 64 characters (A-Z, a-z, 0-9, +, /). It is used to safely transmit binary data through text-only channels like email or JSON.
Is Base64 encryption?
No. Base64 is an encoding, not encryption. Anyone can decode a Base64 string instantly. Do not use it to hide sensitive data.
What is Base64 used for?
Embedding images in HTML/CSS (data URIs), encoding email attachments (MIME), storing binary data in JSON, transmitting credentials in HTTP Basic Authentication, and encoding binary data in URLs.