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