編碼 | 解碼 | 壓縮

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

其他語言