Base64 Encode / Decode

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand Base64 Encode / Decode

Base64 把任意字节重写成 64 个普通文本字符,让二进制数据能够穿过只承载文本的系统。

How it works

Base64 每次读取输入的三个字节(24 位),输出四个字符,取自固定字母表:A–Z、a–z、0–9,外加 + 和 /。四个字符承载三个字节,这正是体积增大约 33% 的来源;当输入长度不是三的倍数时,用 = 填充最后一组。文本会先按 UTF-8 编码,因此 é 在进入 Base64 之前先变成 C3 A9 两个字节。

When to use it

  • 把小图片、图标或字体以 data URI 的形式直接内嵌进 CSS 或 HTML。
  • 让二进制附件通过电子邮件(MIME)或 JSON 载荷传输——两者都无法承载原始字节。
  • 调试请求时查看 JWT 的载荷,或 HTTP Basic Authorization 头的内容。
  • 把证书或私钥保存在文本配置文件中——PEM 就是 Base64 外面加上头尾行。

Watch out for

  • Base64 是编码,不是加密。任何人一秒钟就能解码,它什么也藏不住:绝不要用它处理密码、API 密钥或个人数据。
  • 本工具使用带 + 和 / 的标准字母表。JWT、URL 和文件名使用 Base64URL,它改用 - 和 _,并且常常去掉填充——原始的 JWT 分段在这里会失败,需要先把这些字符换回来,并把长度补齐到 4 的倍数。
  • 解码结果按 UTF-8 文本呈现,因此 PNG 或 ZIP 的 Base64 解出来是不可读的字符。这是正确答案:载荷是二进制,不是文本。
  • 内联载荷时,那约 33% 的膨胀会在每次页面加载时被支付,因为内联的资源无法与包含它的文档分开缓存。

Not the right tool for: 保护机密。如果需要取回原值请用 AES 加密;如果永远不需要取回,请用哈希。

Frequently Asked Questions

Base64 有什么用途?

Base64 常用于把二进制数据(图片、文件)编码成文本,以便安全地通过 HTTP、电子邮件等基于文本的协议传输。

Base64 需要填充吗?

需要。标准 Base64 使用 = 作为填充字符,使输出长度为 4 的倍数。部分实现会省略填充(例如 JWT 使用不带填充的 Base64URL)。

URL 安全的 Base64 变体是什么?

URL 安全的 Base64 把 + 替换为 -、把 / 替换为 _,以避免与 URL 保留字符冲突。JWT 令牌使用的正是这个变体。

How to Use Base64 Encode / Decode

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.