Base64是一种将二进制数据转换为ASCII文本的编码方式,广泛用于邮件附件(MIME)、Data URI、API数据传输、JWT令牌等场景。本工具支持标准Base64和URL安全Base64两种格式,还提供图片转Base64、JWT解析和批量处理功能。PHP引擎在服务端处理,支持大文本和二进制内容的精确编解码。
| 特性 | 标准格式 | URL安全格式 |
|---|---|---|
| 字符集 | A-Z a-z 0-9 + / = | A-Z a-z 0-9 - _(无填充=) |
| 填充 | 用=补齐到4的倍数 | 不使用填充字符 |
| 适用场景 | 邮件(MIME)、文件编码、Data URI、嵌入HTML/CSS | URL参数、Token、JWT、Cookie、文件名 |
| 潜在问题 | +和/在URL中需要百分号转义(%2B、%2F) | 无URL特殊字符问题,可直接用于URL |
| 编码示例 | SGVsbG8+V29ybGQ/ | SGVsbG8-V29ybGQ_ |
将小图标(favicon、Logo、按钮图标)转为Base64后直接嵌入CSS的background-image: url(data:image/png;base64,...)或HTML的<img src="data:...">,减少HTTP请求数量,加快首屏渲染。建议仅对5KB以下的小图使用。
REST API的JSON格式不支持二进制数据。将图片、文件、证书等二进制内容Base64编码后放入JSON字段中传输,接收方解码还原。如头像上传、电子签名、PDF附件等场景。
电子邮件协议(SMTP)只能传输ASCII文本。所有邮件附件(图片、文档、压缩包)都通过Base64编码为文本后嵌入邮件正文。这就是为什么带大附件的邮件体积会增大约33%。
JWT(JSON Web Token)的Header和Payload部分都是Base64URL编码的JSON。开发调试时需要解码JWT查看其中的用户ID、权限、过期时间等信息,判断认证问题。
某些数据库或配置文件只支持文本格式。将加密密钥、证书、小文件Base64编码后可以安全地存入VARCHAR、TEXT字段或YAML/JSON配置中。
不同操作系统对二进制文件的处理方式不同,Base64编码后变成纯ASCII文本,可以安全地通过任何文本通道(邮件、聊天、代码注释、XML)传输而不会被篡改。
很多网页将图片或字体以Data URI(Base64)形式内联在HTML/CSS中。爬虫工程师需要解码这些Base64字符串来提取实际的图片和资源文件。
调试网络请求时,经常遇到Base64编码的请求体或响应体。快速解码查看实际内容,判断数据是否正确传输。
工具提供四个功能标签页:「🔄 编码/解码」用于文本的Base64互转;「🖼️ 图片⇄Base64」用于图片文件与Base64字符串的互转,生成可直接使用的HTML/CSS代码;「🔑 JWT解析」专门拆解和分析JWT令牌;「📋 批量处理」一次处理多条数据。根据你的需求点击对应标签页。
在编码/解码模式下,点击"标准格式"或"URL安全格式"切换。标准格式使用+和/字符,末尾有=填充,适合邮件、文件和Data URI。URL安全格式将+替换为-、/替换为_且去掉填充,适合放入URL参数、Cookie和JWT中使用。
在左侧"原始文本"区域输入或粘贴要编码的内容。工具会实时自动编码,结果即时显示在右侧"Base64结果"区域。支持中文、Emoji、特殊字符和多行文本。下方同时显示输入字符数、字节数、输出字节数、膨胀比例和MIME行数等统计信息。
在右侧"Base64结果"区域粘贴要解码的字符串,工具自动解码并在左侧显示原文。支持自动识别标准格式和URL安全格式(无需手动切换),智能处理有无填充符号的情况。如果解码结果是图片,还会自动显示图片预览。
切换到「🖼️ 图片⇄Base64」标签页,点击上传区域或直接拖放图片文件。工具会生成四种可直接使用的格式:纯Base64字符串(用于API传输)、完整Data URI(用于<img src>)、HTML标签代码(直接粘贴到HTML中)、CSS背景图代码(直接粘贴到样式表中)。每种格式都提供独立的复制按钮。
切换到「🔑 JWT解析」标签页,粘贴完整的JWT字符串。工具自动将其拆分为Header(红色,包含算法类型)、Payload(紫色,包含用户数据和声明)和Signature(蓝色)三部分,JSON格式化显示。还会自动解析过期时间(exp)并标注是否已过期、签发时间(iat)和签发者(iss)。
切换到「📋 批量处理」标签页,选择编码或解码操作和格式(标准/URL安全),在文本框中每行输入一条数据(最多500条),点击批量处理。结果以表格形式展示输入和对应的编码/解码结果,方便对照和复制。
不是。Base64是编码(encoding),不是加密(encryption)。任何人都可以轻松解码Base64还原原始内容,它不提供任何安全性保护。Base64的目的是将二进制数据转为纯文本以便在文本通道中安全传输,而不是隐藏数据内容。
Base64编码后体积约增大33%(每3字节原始数据编码为4字节Base64文本),再加上可能的MIME换行符。例如一个7.5KB的图片Base64编码后约10KB。这是用空间换取文本安全传输的代价。
优点:减少HTTP请求、避免跨域问题、离线可用。缺点:体积增大33%、无法被浏览器单独缓存、增加HTML/CSS文件大小、大图片会导致页面渲染变慢。建议仅对5KB以下的小图标使用,大图片应使用正常的<img src="url">方式。
JWT由三段用点号(.)分隔的字符串组成:Header(头部)包含签名算法类型(如HS256、RS256)和令牌类型;Payload(载荷)包含实际数据(用户ID、权限、过期时间等声明);Signature(签名)是用密钥对前两部分进行加密签名的结果,用于验证令牌未被篡改。前两部分是Base64URL编码的JSON。
+在URL查询参数中会被解释为空格,/是URL路径分隔符,=是参数赋值符号。如果Base64字符串中包含这些字符并直接放入URL,会导致URL解析错误。URL安全格式用-替换+、用_替换/并去除末尾的=填充,确保可以安全地嵌入URL中。
常见原因:字符串被截断(缺少末尾字符)、包含非法字符(如中文、换行符)、混淆了标准格式和URL安全格式、URL传输中+被替换为空格。本工具已内置自动修正功能,会尝试智能识别和修复这些问题。
编码解码均在当前页面的PHP后端即时处理,文本和文件内容不会传输到任何第三方服务器,处理完成后立即丢弃,不存储任何数据。