ブログに戻る
base64 2025-02-10

Base64エンコーディング解説:仕組みと使い方

Base64エンコーディングの徹底解説、その背後のアルゴリズム、Web開発での実用的な使用例。

Base64エンコーディングは、コンピューティングにおける最も基本的なエンコーディング方式の一つです。メールに画像を埋め込む場合でも、JSONにバイナリデータを保存する場合でも、認証トークンを処理する場合でも、Base64はあらゆるところにあります。

Base64とは正確には何か?

Base64は、バイナリデータを64個の印刷可能なASCII文字の文字列に変換するバイナリからテキストへのエンコーディング方式です。

Base64アルファベット

標準的なBase64アルファベットは以下で構成されます:

  • A-Z(インデックス0-25)
  • a-z(インデックス26-51)
  • 0-9(インデックス52-61)
  • +(インデックス62)
  • /(インデックス63)
  • =(パディング文字)

ステップバイステップのエンコードプロセス

"Hi!"という文字列をステップバイステップでエンコードしてみましょう:

1. バイナリに変換: H=01001000, i=01101001, !=00100001

2. 連結: 010010000110100100100001

3. 6ビットグループに分割: 010010 000110 100100 100001

4. 10進数に変換: 18, 6, 36, 33

5. Base64アルファベットにマッピング: S, G, k, h

6. 結果: SGkh

パディングの説明

入力長が3で割り切れない場合、=パディングが追加されます。

URL安全なBase64

標準Base64はURLで特別な意味を持つ+/を使用します。URL安全なBase64(Base64url)は:

  • +-に置換
  • /_に置換
  • パディング=はしばしば省略

この変種はRFC 4648で規定されており、JWTトークンやその他のURL関連のコンテキストで使用されます。

一般的な使用例

HTML/CSSのデータURI

埋め込み画像

メール添付ファイル(MIME)

SMTPなどのメールプロトコルは7ビットASCIIのみをサポートします。Base64により、バイナリファイルを安全に送信できます。

HTTP基本認証

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

サイズオーバーヘッド

Base64エンコーディングはデータサイズを約33%増加させます。3バイトの入力は4バイトの出力を生成します。

重要な注意事項

  • Base64はエンコーディングであり、暗号化ではありません
  • 常に33%のサイズ増加を考慮してください
  • URLにBase64文字列が含まれる場合はURL安全な変種を使用してください

Base64エンコーダー/デコーダーツールで即座にエンコード・デコードしてみてください。