2026-06-14·5 min read
Base64 vs Base64URL:每个开发者都应了解的关键差异
如果您使用过 Web API、JWT 令牌或 data URI,几乎肯定使用过 Base64 编码。但您可能也遇到过 Base64URL,一个略有不同的变体。虽然它们密切相关,但在某些情况下差异至关重要。
标准 Base64 使用了三个在 URL 中可能引起问题的字符:'+'(加号)、'/'(斜杠)和用于填充的 '='(等号)。当 Base64 字符串出现在 URL 中时,这些字符需要百分比编码,使 URL 更长且更难阅读。
Base64URL 通过将 '+' 替换为 '-'(减号)和 '/' 替换为 '_'(下划线)来解决此问题。它还移除了末尾的 '=' 填充字符,因为解码器可以推断填充。结果是一个无需转义的 URL 安全字符串。
最常见的 Base64URL 使用场景是 JWT。JWT 的 header 和 payload 都使用 Base64URL 编码。这就是为什么经常出现在 URL 或 HTTP 头中的 JWT 字符串不包含 '+' 或 '/' 字符的原因。
Base64URL 的其他用途包括:CSS data URI、某些 API 认证方案和一些数据库键生成策略。任何 Base64 数据出现在 URL 或文件名中的场景都适合使用 URL 安全变体。
我们免费的 Base64 编解码工具(/tools/base64)同时支持标准和 URL 安全模式,让您可以根据需要轻松切换两种格式。