Base64 编解码
Base64 编码解码,支持 UTF-8 文本与图片 Data URL 互转。
Base64 在线编解码
Base64 是一种将二进制数据表示为 ASCII 字符串的编码方式,使用 64 个可打印字符(A-Z、a-z、0-9、+、/)。 严格来说 Base64 不是加密算法(任何人都能解码),但常与加密场景搭配(如加密后输出的二进制需转 Base64 才能放进 JSON/文本)。 本工具支持 UTF-8 安全编解码,并可处理图片与 Base64 Data URL 互转。
常见应用
- 图片内嵌:将小图片转 Base64 嵌入 HTML/CSS,减少 HTTP 请求(Data URL)。
- JWT Token:JSON Web Token 的 Header 和 Payload 用 Base64Url 编码。
- 邮件附件:MIME 协议用 Base64 编码二进制附件以适配 SMTP 文本传输。
- 加密输出:AES/RSA 加密后的二进制密文转 Base64 便于传输与显示。
- Basic Auth:HTTP 基本认证使用 Base64 编码用户名:密码。
Base64 使用注意事项
Base64 不是加密——这是最重要的认知。任何人都能解码 Base64,它完全不提供保密性。如果你想保护数据,必须先用 AES/RSA 等真正的加密算法加密,再 Base64 编码。把 Base64 当加密用是最常见的新手错误。HTTP Basic Auth 用 Base64 传输"用户名:密码",必须配合 HTTPS,否则等同于明文传输。
体积膨胀是 Base64 的必然代价:编码后数据约为原始大小的 4/3(+33%),因为每 3 字节二进制编码为 4 个 Base64 字符。这意味着把图片转 Base64 嵌入 HTML 会让 HTML 变大 33%,且无法被浏览器单独缓存。建议只对小图标(< 4KB)用 Data URL,大图仍应作为独立资源加载,利用浏览器缓存。CSS Sprites 或 SVG 图标通常比 Base64 更优。
UTF-8 处理:浏览器原生 atob/btoa 不支持 UTF-8,处理中文会乱码。本工具用 TextEncoder/TextDecoder 正确处理 UTF-8。还有 Base64Url 变体(将 + 换成 -、/ 换成 _、去掉 = 填充),用于 URL 安全场景,JWT 用的就是 Base64Url 而非标准 Base64。