编码 | 解码 | 压缩

> base64url | jwt | URL 安全 <

// Base64url - 用于 URL 和文件名的安全 Base64 变体,支持无填充

[URL-SAFE]

URL 兼容

不使用特殊 URL 字符——安全用于查询参数和路径。

[JWT]

JWT 标准

在 JSON Web Token 和 OAuth 2.0 规范中广泛使用。

[NO-PADDING]

可选填充

可以省略填充字符 (=),让 URL 更简洁。

>> 技术信息

Base64url 的工作原理:

Base64url 是 Base64 的一个变体,将“+”替换为“-”、将“/”替换为“_”,因此可安全用于 URL 和文件名。填充字符“=”通常会被省略,因为它可能在 URL 中造成问题。

对比示例:

Base64: SGVsbG8+Pw== Base64url: SGVsbG8-Pw

为什么使用 Base64url:

  • >JWT 令牌
  • >OAuth 2.0 流程
  • >URL 查询参数
  • >文件名编码
  • >Web API 签名

>> 常见问题

什么是 Base64url?

Base64url 是一种适用于 URL 和文件名的安全 Base64 编码变体。它将“+”替换为“-”、将“/”替换为“_”,并可以选择移除填充“=”字符,以避免 URL 编码问题。

为什么不能在 URL 中直接使用普通 Base64?

普通 Base64 使用“+”“/”“=”等在 URL 中具有特殊含义的字符。“+”可能被解释为空格,“/”是路径分隔符,“=”用于参数赋值,会导致解析错误。

Base64url 一般用于哪里?

Base64url 广泛用于 JWT(JSON Web Token)、OAuth 2.0 授权码、SAML 断言,以及任何需要在 URL 或 HTTP 头中传递二进制数据的 API。

Base64url 是否必须使用填充?

不必须。许多实现会省略填充,因为可以根据长度计算出来。JWT 规范特别要求不使用填充,以获得更简洁的 URL。

其他语言