Base64 解码与 Base64 编码在线工具:粘贴就出结果,编码、解码一键对调,支持 UTF-8 与 GBK 解码、URL 安全写法,空格换行、缺的等号、data: 前缀自动处理,出错指出第几个字符。Base64 转图片、转 PDF 当场预览并下载,图片和任意文件也能转成 Base64。全部在本机浏览器里处理,不上传。
怎么用
这是一个在线 Base64 编码解码工具:Base64 在线解码、在线 Base64 解码、Base64 编码、Base64 转图片都在这一页,打开就能用,不用下载安装。页面顶部有一句说明:文字、图片和文件全在你这台设备的浏览器里处理,不上传、不联网,也不保存。工具分「文本」「图片」「文件」三个页签。
一、文本:Base64 解码与 Base64 编码
- Base64 解码(默认):把 Base64 粘进左边(手机上是上面)的框,右边马上出原文,不用点按钮。空格、换行、全角空格会自动去掉;末尾缺的等号会自动补上并告诉你补了几个;开头带
data:...;base64,的会认出前缀并剥掉。 - Base64 编码:点「编码」,输入文字就出 Base64。勾上「URL 安全」会用
-_代替+/并去掉末尾的=,放进网址参数、文件名、JWT 一类地方不会被转义。 - 对调:把结果搬回输入框、方向反过来,编完马上解一遍验证,或者解完再编回去。
- 字符集:解码可选 UTF-8 或 GBK。编码一律按 UTF-8,因为浏览器不自带 GBK 编码。
- 结果框上方有「复制结果」。
所以「Base64 加密」「Base64 解密」也在这里做:它们说的就是编码和解码,见下面的常见问题。
二、图片:图片转 Base64、Base64 转图片
- 选一张图片或拖进虚线框,马上给出四种写法,各带「复制」:Data URL(
data:image/png;base64,...,能直接放进浏览器地址栏打开)、纯 Base64(不带前缀,接口字段常用)、CSS(background-image: url(...)一整行)、HTML(<img src="...">标签)。 - 下面的「Base64 转图片/PDF」框反过来用:粘进 Base64 或 Data URL,认出是图片就当场预览,并给「下载」按钮;是 PDF 就给「下载 .pdf」,这就是常说的 Base64 转 PDF。
三、文件:任意文件转 Base64
选任意文件(压缩包、文档、音频都行)就转成 Base64,可以勾「带 data: 前缀」,结果能复制,也能下载成 .txt。超过 10 MB 会先提示再继续。下面的「Base64 转回文件」框把粘进来的 Base64 还原成文件下载,按文件头认格式起扩展名,认不出就存成 .bin。
四、看看效果
点「示例」会填一段现成的内容:编码方向填一句中文,解码方向填一段 Base64,结果马上出来。
只想把一串 Base64 还原成图片看看、存下来,用 Base64 转图片,粘进去就出图,多段也能一次转。
怎么看结果
状态行
- 绿色「已解码(UTF-8)」:解出来的是正常文字,结果框里就是原文。后面如果写着「末尾自动补了 N 个等号」,说明你粘的那段少了等号,通常是复制时被截掉或用的是 URL 安全写法,不影响结果。
- 红色报错:本页只会报三种错,都写明了位置:
- 第 N 个字符「x」不是 Base64 里的字符:Base64 只用 A~Z、a~z、0~9、
+/(或-_)和末尾的=。常见原因是混进了中文标点、引号,或者把网址里别的百分号转义也复制进来了(%2B、%2F、%3D本页会自动认成+、/、=)。位置按你粘贴的原文数,从 1 开始,空格和换行也算一位。 - 长度不对:去掉空白后的字符数除以 4 余 1。任何合法的 Base64 都不会这样,多半是复制时多了或少了一个字符。
- 等号只能出现在最末尾:中间出现了等号,通常是两段 Base64 首尾连在了一起,分开各解一次就行。
- 第 N 个字符「x」不是 Base64 里的字符:Base64 只用 A~Z、a~z、0~9、
「这段看起来是二进制数据」
解出来的字节不是合法的文字(或者控制字符太多)时,结果框留空,下面出一张卡片。本页会看前几个字节(文件头)认格式:
| 文件头 | 认成 | 下载的扩展名 |
|---|---|---|
89 50 4E 47 |
PNG 图片 | .png |
FF D8 FF |
JPEG 图片 | .jpg |
GIF87a/GIF89a |
GIF 动图 | .gif |
RIFF....WEBP |
WEBP 图片 | .webp |
%PDF- |
PDF 文档 | |
PK 03 04 |
ZIP 压缩包 | .zip |
图片会直接预览。ZIP 这一项也可能是 Word、Excel、PPT 这类新版 Office 文件(它们本质上是 ZIP 包),下载后按需要改扩展名。认不出的存成 .bin。
认出了 data: 前缀
粘的内容以 data: 开头时,状态行下面会说明类型和字符集。类型是 text/html 时会多一句提醒:这是把网页塞进链接里的写法,看内容即可,别照着里面的提示填账号密码。
常见问题
Base64 用在哪些地方?
邮件附件(邮件协议最早只认文字,附件都编码成 Base64 再发)、网页里内嵌的小图标、接口里传图片或文件、JWT 令牌的前两段、各种配置文件里的证书和密钥文本,都是 Base64。需要在网页里生成二维码图片再嵌进页面,可以先用 二维码生成 做图,再到「图片」页签转成 Data URL。
Base64、MD5、进制转换有什么区别?
Base64 是可逆的编码,能原样解回来;MD5 与 SHA-256 是哈希,只能算不能解,常用来核对文件有没有损坏;进制转换 是同一个数字换一种写法,比如十六进制 FF 等于十进制 255。三者常被一起搜,但干的是三件不同的事。
接口返回的 JSON 里有一大段 Base64 怎么办?
先用 JSON 在线解析 把整段 JSON 格式化,找到那个字段,把引号里的值复制过来粘到本页解码。图片字段解出来会直接预览。
为什么有的 Base64 末尾没有等号?
两种情况:一是原始数据长度正好是 3 的倍数,本来就不需要补;二是用了 URL 安全写法,规定可以省掉等号。本页解码时两种都认,缺的自动补上。
原理与冷知识
三个字节变四个字符
Base64 把输入每 3 个字节(24 位)切成 4 段、每段 6 位。6 位能表示 0~63,正好对应字母表里的 64 个字符:A~Z 是 0~25,a~z 是 26~51,0~9 是 52~61,+ 是 62,/ 是 63。拿「Hi8」举例:三个字节是 48 69 38,写成二进制 010010 000110 100100 111000,四段分别是 18、6、36、56,查表得到 SGk4。中文「中文」按 UTF-8 是 6 个字节,编出来是 5Lit5paH,你可以在本页验证这两个例子。
等号是怎么来的
最后剩 1 个字节时只能凑出 2 个有效字符,补 2 个 =;剩 2 个字节时凑出 3 个有效字符,补 1 个 =。所以等号最多两个,而且只会在末尾。解码时等号本身不带信息,缺了也能算出来,这就是本页敢「自动补等号」的原因。
URL 安全写法
标准字母表里的 + 和 / 在网址里有特殊含义,= 也会被当成参数分隔符,所以另有一套 URL 安全字母表,把 + 换成 -、/ 换成 _,并且通常不写等号。两套写法的规定都在 RFC 4648 里。
data: 链接
data:类型;base64,内容 这种写法叫 Data URL,它把文件内容直接写进链接,浏览器不用再去下载。小图标写成 Data URL 能少一次请求,但体积会变大约三分之一,而且没法单独缓存,所以只适合几 KB 以内的小图。也正因为它能把整张网页装进一个链接,常被用来做钓鱼页面,很多邮箱和浏览器会直接拦下 data:text/html 开头的链接。
更多问答
Base64 是加密吗?Base64 解密需要密码吗?
不是加密,也没有密码。Base64 只是把任意字节换成 64 个可打印字符来写的一种编码,规则公开,谁拿到都能原样解开,所以常说的「Base64 加密」「Base64 解密」其实就是编码和解码。它的用处是让图片、文件这类二进制内容能放进只认文字的地方,比如邮件正文、网页代码、JSON 字段、网址。真要保密,得用 AES 这类真正的加密算法;要核对内容有没有被改过,用 MD5、SHA-256 这类哈希。
为什么编码以后变大了大约三分之一?
因为 Base64 每次取 3 个字节(24 位),切成 4 段、每段 6 位,每段换成一个字符,3 个字节就变成了 4 个字符,长度是原来的 4/3。最后不满 3 个字节时用一个或两个等号补齐,所以 Base64 的长度总是 4 的倍数(URL 安全写法去掉了等号的除外)。一张 30 KB 的图片转成 Base64 大约 40 KB,这也是为什么只有小图标才适合直接写进 CSS 或 HTML。
打开链接显示「无法打开页面 data:text/html;charset=utf-8;base64」是怎么回事?
那是一段把整张网页内容塞进链接里的写法:data:text/html 表示内容是网页,charset=utf-8 是字符集,base64 表示后面那串字符是 Base64 编码过的网页源码。QQ 邮箱、浏览器出于安全会拦下这种链接,所以显示打不开。它常见于钓鱼邮件,也可能只是邮件格式坏了。想知道里面写了什么,可以把整段(或逗号后面那段)粘进本页的「文本」页签,本页会认出前缀、剥掉并解出网页源码给你看;只看不点,千万别照着里面的提示填账号、密码或验证码。
解码出来是乱码怎么办?
先看字符集。本页默认按 UTF-8 解码,网页、手机和新系统里的文字大多是 UTF-8;如果原文来自老的 Windows 程序、老网站或某些国内系统,可能是 GBK,把字符集切到 GBK 再看。GBK 解码用的是浏览器自带的能力,个别浏览器不支持时页面会直接说明。要是两种都不像文字,页面会提示「这段看起来是二进制数据」,那它本来就是图片、PDF 或别的文件,用下面的下载按钮存下来打开即可。
我的图片和文件会上传吗?多大的文件能转?
不会上传。编码、解码、读图片、读文件全在你这台设备的浏览器里完成,页面不发任何网络请求,断网也能用,内容也不保存,刷新就没了。几 MB 的文件可以直接转;超过 10 MB 时页面会先提示,因为转出来的 Base64 文字很长(10 MB 的文件约 13.3 MB 文字),放进文本框会让页面卡一阵,你确认后才继续。
和锤子在线工具、sojson、菜鸟工具这类网站比有什么不同?
基础的文本编码解码大同小异,按顺手的用就行。本页的几处侧重:解码时空格、换行、缺的等号、data: 前缀、URL 安全写法都自动处理,不用先手动清理;出错时直接说第几个字符不对或长度不对;解出来是二进制时按文件头认出 PNG、JPEG、GIF、WEBP、PDF、ZIP 并给对应扩展名下载;图片一次给出 Data URL、纯 Base64、CSS、HTML 四种写法。本页不做 Base32、Base58 等其他编码。