🔁 Base64 编解码
完整支持中文的 UTF-8 编码方案,数据不上传。
如何使用Base64 编解码
把文本转为 Base64 编码,或把 Base64 还原为原文,支持中文与 UTF-8 字符。
计算原理与公式
Base64 使用 64 个字符(大小写字母、数字、+/)表示二进制数据,每 3 字节对应 4 个编码字符。核心提醒:Base64 是编码不是加密——任何人都能解码,它不提供任何安全性。它的用途是让二进制数据能安全穿过只支持文本的通道(如 URL、JSON、邮件头)。
适用场景
在 URL 中传递二进制数据、邮件附件的 MIME 编码、接口签名验证、Data URI 构造、排查乱码问题。
计算示例
中文与 ASCII 的编码对照:
| 原文 | Base64 编码后 |
|---|---|
| Hello | SGVsbG8= |
| 中文 | 5Lit5paH |
| JSON对象 | eyJhIjoxfQ== |
计算局限与假设
Base64 不是加密,不要用它保护密码或敏感信息。含中文时必须确保两端都按 UTF-8 编码处理,否则会出现乱码。URL 中的 Base64 需将 + 替换为 -、/ 替换为 _(即 URL-safe 变体)并去掉末尾的 =。解码时若出现乱码,首先检查编码一致性。
常见问题
Base64 是加密吗?
不是,只是编码。任何人拿到 Base64 串都能零成本还原原文,绝不能用于保护密码或机密内容。它的正确定位是「传输兼容」:把二进制伪装成文本安全传输。
为什么 Base64 串末尾有 = 号?
原文长度不是 3 的倍数时,末尾补零凑齐并用 = 号标记(1 个或 2 个)。解码时 = 只是占位提示,见到 = 多于两个或少于正常位数,说明串被截断或篡改过。
URL 里传 Base64 为什么报错?
标准 Base64 里的 + 和 / 在 URL 有特殊含义。URL 场景应使用 URL-safe 变体(+ 换 −,/ 换 _)。对接第三方接口遇到「签名错误」,先检查是不是没做这层替换。