> 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。