> base64url | jwt | url-safe <

// 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 エンコードの問題を避けます。

なぜ通常の Base64 を URL で使わないのですか?

通常の Base64 では「+」「/」「=」を使用しますが、これらは URL では特別な意味を持ちます。「+」は空白として扱われることがあり、「/」はパス区切り、「=」はパラメータ用に使われるため、解析時に問題が発生します。

Base64url はどこで使われますか?

Base64url は JWT(JSON Web Token)、OAuth 2.0 の認可コード、SAML アサーション、そして URL や HTTP ヘッダーでバイナリデータを渡す必要があるあらゆる API で広く使われています。

Base64url ではパディングは必須ですか?

いいえ、Base64url ではパディングは任意です。長さから復元できるため、多くの実装ではパディングを省略します。特に JWT では、より短く読みやすい URL のためにパディングなしが要求されています。

その他の言語