工作原理
编码本质上只是重新分组比特。Base64 每次读取三个字节(24 位),把这 24 位重新切成四个 6 位组,每组映射到 64 个字符之一——A-Z、a-z、0-9,再加 + 和 /——于是每三个输入字节产生四个输出字符。当输入长度不是三的倍数时,末尾用 = 补齐,这就是 Base64 字符串经常以一到两个等号结尾的原因。
3 比 4 的关系意味着 Base64 会让数据膨胀约 33%:3 字节变 4 字符,3 KB 变 4 KB。这个代价是刻意付出的。输出保证不含控制字符、引号、反斜杠,也不含大于 127 的字节,因此可以直接嵌入 JSON 字符串、SQL 字面量或 HTTP 请求头,完全不需要额外转义。
还必须存在第二套字母表,因为标准字母表对 URL 和文件名并不友好:+ 在查询字符串中会被解释为空格,/ 是路径分隔符。URL 安全 Base64(RFC 4648 第 5 节)把这两个字符换成 - 和 _,通常还去掉末尾的填充。两套字母表编码的字节完全相同,差别仅在于字母表的最后两个字符。混淆它们正是签名验签失败最常见的原因。
解码是逆过程:每个字符映射回一个 6 位值,四个值拼接成 24 位,再拆回三个字节。许多解码器会静默忽略非法字符而不报错,这是真正的隐患——从日志里截断复制的一小段 token 也会“成功”解码成看似合理的乱码。本工具会先按所选字母表校验输入,并报告出错字符的位置。
常见应用场景
- 把小尺寸图标以 data URL 形式内联进 CSS 或 HTML,省掉一次 HTTP 请求。
- 查看从浏览器网络面板里复制出的 data: URL,还原出它所包含的文件。
- 在没有专门 JWT 工具的环境里解码 JWT 的载荷段。
- 为无法承载原始字节的 SOAP 或 XML 接口准备二进制附件。
- 把证书或密钥文件转换成为配置文件、环境变量所要求的 Base64 形式。
- 通过确认发送方使用 URL 安全 Base64 而校验方期待标准字母表,定位签名失败的原因。
最后更新: 2026-10-14