Base64 编解码工具 + 6 个真实场景

Base64 是工程师每天打交道的老朋友。HTTP 头、邮件附件、JWT、URL 编码……但你真的清楚它在干嘛吗?

什么是 Base64

Base64 是把二进制数据用 64 个 ASCII 字符表示的编码方式。

  • 64 个字符:A-Z a-z 0-9 + / (共 62 个)+ =(填充)
  • 每 3 个字节(24 bit)→ 4 个字符(每个 6 bit)
  • 解码端严格按 ASCII 处理,适合在文本协议(HTTP、SMTP、JSON)里传输二进制

在线工具

Base64 工具

👉 Base64 编解码

支持: - ✅ 文本 → Base64 - ✅ Base64 → 文本 - ✅ UTF-8 编码(中文也 OK)

6 个真实场景

场景 1:HTTP Basic Auth

用户名: admin
密码: 123456
→ Authorization: Basic YWRtaW46MTIzNDU2
import base64
auth = base64.b64encode(b'admin:123456').decode('ascii')
# 'YWRtaW46MTIzNDU2'

场景 2:JWT Token

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NSJ9.SflKxw
└──── header ────┘ └──── payload ────┘ └─ signature ─┘

JWT 的 header 和 payload 都是 Base64URL 编码(用 -_ 代替 +/)。

场景 3:URL 安全编码

普通 Base64 的 +/= 在 URL 里是特殊字符,要替换成 URL-safe 版本:

# 标准 Base64
base64.b64encode(b'hello?')  # b'aGVsbG8/PQ=='

# URL Safe Base64
base64.urlsafe_b64encode(b'hello?')  # b'aGVsbG8_PQ=='

场景 4:邮件附件(MIME)

from email.mime.base import MIMEBase
from email import encoders

attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(open('report.pdf', 'rb').read())
encoders.encode_base64(attachment)  # ← Base64 编码

场景 5:图片内联(Data URL)

<img src="data:image/png;base64,iVBORw0KGgoAAA..." />

把小图直接编码进 HTML,省一次 HTTP 请求。

场景 6:密钥存储

# SSH 公钥格式
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... user@host
└──────── Base64 编码的二进制部分 ────────┘

Python 一行实现

import base64

# 编码
encoded = base64.b64encode('你好世界'.encode('utf-8')).decode('ascii')
# '5L2g5aW95LiW55WM'

# 解码
decoded = base64.b64decode(encoded).decode('utf-8')
# '你好世界'

注意事项

⚠️ Base64 不是加密!任何人拿到都能解。它只是"编码"。

如果需要保密,先用 AES/RSA 加密,再 Base64 编码。


📱 扫码右侧二维码关注「网英的日常」,更多工程师工具持续更新!