🔗 Base64URL エンコーダー

Base64URL(URL安全なBase64派生)のエンコード・デコード。+ と / の代わりに - と _ を使用し、パディングなし。

Base64URL について

Base64URL は RFC 4648 で定義された URL安全な Base64 派生方式です。+/-(ハイフン)と _(アンダースコア)に置き換えることで、エンコード結果をエスケープなしで URL、ファイル名、クエリパラメータに安全に使用できます。また = パディング文字も省略します。このツールはすべてブラウザ内で完結——アップロードは一切ありません。

仕組み

  • エンコード —— 入力を UTF-8 エンコードし、ブラウザネイティブの btoa で Base64 エンコードします。結果の +- に、/_ に置き換え、末尾の = パディングをすべて削除します。
  • デコード —— 入力の -+ に、_/ に戻し、長さが4の倍数になるようパディングを再追加してから atob で UTF-8 文字列にデコードします。
  • アルファベットは A-Z a-z 0-9 - _(64文字)、パディングなし。
  • Base64URL は JWT トークン、data URI、URL安全識別子で広く使用されています。

ユースケース

  • JWT(JSON Web Token)のヘッダーとペイロードセグメントのエンコード。
  • URL、クエリ文字列、フラグメントにエスケープなしでバイナリデータを渡す。
  • バイナリやテキストコンテンツからURL安全なファイル名を作成。
  • +/ が特別な意味を持つ環境でデータを交換。

よくある質問

Base64 と Base64URL の違いは? Base64 は +/= パディングを使用しますが、これらはURL安全ではありません。Base64URL はそれらを -_ に置き換えパディングを削除するため、出力をそのままURLに配置できます。

Base64URL は可逆ですか? はい。すべての Base64URL 文字列は元のバイトにデコードできます。パディングはオプションで、デコード時に自動的に再追加されます。

なぜパディングを削除するのですか? パディング(=)はURL内でパーセントエンコードする必要があり、URL安全エンコーディングの目的が損なわれます。長さが文脈から分かる場合、RFC 4648 はパディングの省略を許容しています。

テキストはアップロードされますか? いいえ。すべてのエンコード・デコードはローカルブラウザで行われます。