コンテンツへ移動

Base64 変換ツール

知識ポイント

Base64 エンコードの原理

Base64 は A-Z、a-z、0-9、+、/ の 64 文字でテキストを表現します。3 つの 8 ビットバイトを 4 つの 6 ビットグループに分け、それぞれを Base64 のインデックス表に対応させます。

  • a: 0110 0001
  • b: 0110 0010
  • 2: 0011 0010

Base64 インデックス対応

  • Y: 0110 00
  • W: 0101 10
  • I: 0010 00
  • y: 1100 10

分割前: 0110 0001、0110 0010、0011 0010、つまり a、b、2 です。

分割後: 0110 00、0101 10、0010 00、1100 10 となり、それぞれ Y、W、I、y に対応します。

そのため ab2 の Base64 結果は YWIy です。

Base64 が元サイズの約 4/3 になる理由

1 バイトは 8 ビットですが、Base64 はデータを 6 ビット単位に分けます。保存時には各 6 ビット単位を 8 ビットにそろえる必要があります。

元の 24 ビットはパディング後に 32 ビットになるため、Base64 の結果は元データの約 4/3 になります。

Base64url と Base64 の違い

標準 Base64 の + と / は URL 内で %2B、%2F にエンコードされ、URL が長くなります。Base64url は A-Z、a-z、0-9、-、_ を使い、URL で扱いやすい文字列にします。

謝辞