Base64编码解码工具

编码 · 解码 · 图片转换 · JWT解析 · URL安全
🔄 编码/解码
🖼️ 图片⇄Base64
🔑 JWT解析
📋 批量处理
格式:
标准格式
URL安全格式
📝 原始文本
💻 Base64结果

📖 Base64编码解码工具使用说明

Base64是一种将二进制数据转换为ASCII文本的编码方式,广泛用于邮件附件(MIME)、Data URI、API数据传输、JWT令牌等场景。本工具支持标准Base64和URL安全Base64两种格式,还提供图片转Base64、JWT解析和批量处理功能。PHP引擎在服务端处理,支持大文本和二进制内容的精确编解码。

一、Base64编码解码工具两种格式对照

特性标准格式URL安全格式
字符集A-Z a-z 0-9 + / =A-Z a-z 0-9 - _(无填充=)
填充用=补齐到4的倍数不使用填充字符
适用场景邮件(MIME)、文件编码、Data URI、嵌入HTML/CSSURL参数、Token、JWT、Cookie、文件名
潜在问题+和/在URL中需要百分号转义(%2B、%2F)无URL特殊字符问题,可直接用于URL
编码示例SGVsbG8+V29ybGQ/SGVsbG8-V29ybGQ_

二、Base64编码解码工具使用场景

2.1 Web前端开发:图片嵌入HTML/CSS

将小图标(favicon、Logo、按钮图标)转为Base64后直接嵌入CSS的background-image: url(data:image/png;base64,...)或HTML的<img src="data:...">,减少HTTP请求数量,加快首屏渲染。建议仅对5KB以下的小图使用。

2.2 API开发:传输二进制数据

REST API的JSON格式不支持二进制数据。将图片、文件、证书等二进制内容Base64编码后放入JSON字段中传输,接收方解码还原。如头像上传、电子签名、PDF附件等场景。

2.3 邮件系统:MIME编码附件

电子邮件协议(SMTP)只能传输ASCII文本。所有邮件附件(图片、文档、压缩包)都通过Base64编码为文本后嵌入邮件正文。这就是为什么带大附件的邮件体积会增大约33%。

2.4 身份认证:JWT令牌解析

JWT(JSON Web Token)的Header和Payload部分都是Base64URL编码的JSON。开发调试时需要解码JWT查看其中的用户ID、权限、过期时间等信息,判断认证问题。

2.5 数据存储:在文本字段中存储二进制

某些数据库或配置文件只支持文本格式。将加密密钥、证书、小文件Base64编码后可以安全地存入VARCHAR、TEXT字段或YAML/JSON配置中。

2.6 跨平台数据交换

不同操作系统对二进制文件的处理方式不同,Base64编码后变成纯ASCII文本,可以安全地通过任何文本通道(邮件、聊天、代码注释、XML)传输而不会被篡改。

2.7 网页爬虫与数据分析

很多网页将图片或字体以Data URI(Base64)形式内联在HTML/CSS中。爬虫工程师需要解码这些Base64字符串来提取实际的图片和资源文件。

2.8 前端调试:检查编码内容

调试网络请求时,经常遇到Base64编码的请求体或响应体。快速解码查看实际内容,判断数据是否正确传输。

三、Base64编码解码工具使用教程

第1步:选择功能模块

工具提供四个功能标签页:「🔄 编码/解码」用于文本的Base64互转;「🖼️ 图片⇄Base64」用于图片文件与Base64字符串的互转,生成可直接使用的HTML/CSS代码;「🔑 JWT解析」专门拆解和分析JWT令牌;「📋 批量处理」一次处理多条数据。根据你的需求点击对应标签页。

第2步:选择编码格式

在编码/解码模式下,点击"标准格式"或"URL安全格式"切换。标准格式使用+/字符,末尾有=填充,适合邮件、文件和Data URI。URL安全格式将+替换为-/替换为_且去掉填充,适合放入URL参数、Cookie和JWT中使用。

第3步:输入内容进行编码

在左侧"原始文本"区域输入或粘贴要编码的内容。工具会实时自动编码,结果即时显示在右侧"Base64结果"区域。支持中文、Emoji、特殊字符和多行文本。下方同时显示输入字符数、字节数、输出字节数、膨胀比例和MIME行数等统计信息。

第4步:输入Base64进行解码

在右侧"Base64结果"区域粘贴要解码的字符串,工具自动解码并在左侧显示原文。支持自动识别标准格式和URL安全格式(无需手动切换),智能处理有无填充符号的情况。如果解码结果是图片,还会自动显示图片预览。

第5步:图片转Base64

切换到「🖼️ 图片⇄Base64」标签页,点击上传区域或直接拖放图片文件。工具会生成四种可直接使用的格式:纯Base64字符串(用于API传输)、完整Data URI(用于<img src>)、HTML标签代码(直接粘贴到HTML中)、CSS背景图代码(直接粘贴到样式表中)。每种格式都提供独立的复制按钮。

第6步:解析JWT令牌

切换到「🔑 JWT解析」标签页,粘贴完整的JWT字符串。工具自动将其拆分为Header(红色,包含算法类型)、Payload(紫色,包含用户数据和声明)和Signature(蓝色)三部分,JSON格式化显示。还会自动解析过期时间(exp)并标注是否已过期、签发时间(iat)和签发者(iss)。

第7步:批量处理

切换到「📋 批量处理」标签页,选择编码或解码操作和格式(标准/URL安全),在文本框中每行输入一条数据(最多500条),点击批量处理。结果以表格形式展示输入和对应的编码/解码结果,方便对照和复制。

四、Base64编码解码工具常见问题

4.1 Base64是加密吗?

不是。Base64是编码(encoding),不是加密(encryption)。任何人都可以轻松解码Base64还原原始内容,它不提供任何安全性保护。Base64的目的是将二进制数据转为纯文本以便在文本通道中安全传输,而不是隐藏数据内容。

4.2 编码后体积会增大多少?

Base64编码后体积约增大33%(每3字节原始数据编码为4字节Base64文本),再加上可能的MIME换行符。例如一个7.5KB的图片Base64编码后约10KB。这是用空间换取文本安全传输的代价。

4.3 图片转Base64的优缺点?

优点:减少HTTP请求、避免跨域问题、离线可用。缺点:体积增大33%、无法被浏览器单独缓存、增加HTML/CSS文件大小、大图片会导致页面渲染变慢。建议仅对5KB以下的小图标使用,大图片应使用正常的<img src="url">方式。

4.4 JWT的三段分别是什么?

JWT由三段用点号(.)分隔的字符串组成:Header(头部)包含签名算法类型(如HS256、RS256)和令牌类型;Payload(载荷)包含实际数据(用户ID、权限、过期时间等声明);Signature(签名)是用密钥对前两部分进行加密签名的结果,用于验证令牌未被篡改。前两部分是Base64URL编码的JSON。

4.5 为什么URL安全格式不用+和/?

+在URL查询参数中会被解释为空格,/是URL路径分隔符,=是参数赋值符号。如果Base64字符串中包含这些字符并直接放入URL,会导致URL解析错误。URL安全格式用-替换+、用_替换/并去除末尾的=填充,确保可以安全地嵌入URL中。

4.6 解码失败可能是什么原因?

常见原因:字符串被截断(缺少末尾字符)、包含非法字符(如中文、换行符)、混淆了标准格式和URL安全格式、URL传输中+被替换为空格。本工具已内置自动修正功能,会尝试智能识别和修复这些问题。

4.7 数据安全吗?

编码解码均在当前页面的PHP后端即时处理,文本和文件内容不会传输到任何第三方服务器,处理完成后立即丢弃,不存储任何数据。