Base64 是编码,不是加密。任何人拿到 Base64 字符串,都可以把它解码回原始内容。
Hello -> SGVsbG8=它的作用是把二进制数据转换成只包含常见 ASCII 字符的文本,方便放进 JSON、HTML、CSS、配置文件或接口字段里。
为什么 Base64 会变大?
Base64 大约每 3 个字节编码成 4 个字符,所以体积通常会增加约三分之一。如果把大图片直接塞进 JSON,请求体可能会明显膨胀。
Data URL 和纯 Base64 有什么区别?
| 形式 | 例子 | 用途 |
|---|---|---|
| 纯 Base64 | iVBORw0KGgo... | 只包含编码内容 |
| Data URL | data:image/png;base64,iVBOR... | 包含 MIME 类型,可直接用于 img src |
| URL Safe Base64 | 使用 - 和 _ | 常见于 JWT 和 URL 场景 |
常见坑
- 把 Base64 当作加密,导致敏感信息直接暴露。
- 复制时漏掉末尾 = 填充字符,导致解码失败。
- 把 Data URL 当成纯 Base64 传给后端,后端解析失败。
- 图片太大仍然转 Base64,导致页面和接口变慢。
- 混用标准 Base64 和 URL Safe Base64。