Decodex

DECODEX · BASE64 · UTF-8

Base64とBase64URLの違い:文字・パディング・変換例

Base64とBase64URLの+ /と- _、パディングの省略、UTF-8デコードを検証済みの例で比較します。

Base64URLはBase64と同じバイト列を、URLに使いやすいよう2文字を変更して表す形式です。Decodexは両方の形式を受け付け、UTF-8テキストとして表示します。比較表の例は変換ツールで試せます。

文字の違いと共通点

Base64は+と/、Base64URLは-と_を使います。英字と数字は同じです。末尾の=を省略するかどうかは別の規則で、プロトコルによって異なります。英数字だけの文字列ではどちらの形式か判別できません。どちらも暗号化ではありません。

URLで文字が変わる理由

application/x-www-form-urlencodedでは+が空白として解釈される場合があります。/はパスの区切り文字にもなります。パラメーターの作成にはURLSearchParamsを使ってください。すでに+が失われた場合、デコーダーが確実に復元することはできません。😀のBase64は8J+YgA==、Base64URLは8J-YgA==です。

変換と確認の手順

まずバイト列をBase64にし、+を-、/を_に置き換えます。末尾の=はプロトコルが許可する場合にだけ削除します。Decodexのエンコーダーはパディング付きBase64を出力し、デコーダーはBase64URLにも対応します。JWTの一部を読むだけでは署名、有効期限、権限は検証されません。このツールはトークン検証機能を提供しません。

この例を変換する

形式テキストBase64
Base64😀8J+YgA==
Base64URL😀8J-YgA==
Base64URL (JWT)😀8J-YgA

この例を変換する →

Base64 → UTF-8 · UTF-8 → Base64

よくある質問

Base64URLには必ず=がないのですか?

いいえ。受信側の規則に従ってください。パディングなしの8J-YgAはDecodexで😀に変換できます。

参考資料

Base64の関連ガイド