Encoding
Base64 与 URL Safe Base64 的差别
Base64 常被用来把二进制或复杂文本放进纯文本环境,但普通 Base64 并不总是适合直接放进 URL。
普通 Base64 会使用 +、/ 和 =。这些字符在 URL、查询参数、文件路径或 Cookie 中可能有特殊含义,需要额外转义。URL Safe Base64 会把 + 替换成 -,把 / 替换成 _,并且常常省略末尾填充符 =。
JWT 使用的就是 Base64URL。很多开发者复制 header 或 payload 后,用普通 Base64 解码器会遇到 padding 错误。解决方式不是随便改内容,而是先确认它是不是 URL Safe 变体,再按规则补齐填充。
什么时候该警惕
- 编码内容要放进链接或查询参数。
- 配置文件里出现了看起来像 Base64 但没有
=的字符串。 - 跨语言服务解码结果不一致。
- 日志系统把
+当成空格展示。
Base64 不是加密。任何人拿到字符串都能还原原始内容。它解决的是传输和表示问题,不解决保密问题。