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 |
よくある質問
Base64URLには必ず=がないのですか?
いいえ。受信側の規則に従ってください。パディングなしの8J-YgAはDecodexで😀に変換できます。
