🔁 Base64 编解码

完整支持中文的 UTF-8 编码方案,数据不上传。

如何使用Base64 编解码

把文本转为 Base64 编码,或把 Base64 还原为原文,支持中文与 UTF-8 字符。

计算原理与公式

Base64 使用 64 个字符(大小写字母、数字、+/)表示二进制数据,每 3 字节对应 4 个编码字符。核心提醒:Base64 是编码不是加密——任何人都能解码,它不提供任何安全性。它的用途是让二进制数据能安全穿过只支持文本的通道(如 URL、JSON、邮件头)。

适用场景

在 URL 中传递二进制数据、邮件附件的 MIME 编码、接口签名验证、Data URI 构造、排查乱码问题。

计算示例

中文与 ASCII 的编码对照:

原文Base64 编码后
HelloSGVsbG8=
中文5Lit5paH
JSON对象eyJhIjoxfQ==

计算局限与假设

Base64 不是加密,不要用它保护密码或敏感信息。含中文时必须确保两端都按 UTF-8 编码处理,否则会出现乱码。URL 中的 Base64 需将 + 替换为 -、/ 替换为 _(即 URL-safe 变体)并去掉末尾的 =。解码时若出现乱码,首先检查编码一致性。

常见问题

Base64 是加密吗?

不是,只是编码。任何人拿到 Base64 串都能零成本还原原文,绝不能用于保护密码或机密内容。它的正确定位是「传输兼容」:把二进制伪装成文本安全传输。

为什么 Base64 串末尾有 = 号?

原文长度不是 3 的倍数时,末尾补零凑齐并用 = 号标记(1 个或 2 个)。解码时 = 只是占位提示,见到 = 多于两个或少于正常位数,说明串被截断或篡改过。

URL 里传 Base64 为什么报错?

标准 Base64 里的 + 和 / 在 URL 有特殊含义。URL 场景应使用 URL-safe 变体(+ 换 −,/ 换 _)。对接第三方接口遇到「签名错误」,先检查是不是没做这层替换。