ZapFile
エンコード開発者ガイド

Base64 エンコードとは?使い方をわかりやすく解説

Base64 の仕組みと存在理由、Web 開発でのよくある使い道、テキストやファイルをオンラインでエンコード/デコードする方法を解説します。

読了 5 分

Base64 は Web 開発のあちこちに登場します。埋め込み画像、JWT トークン、メールの添付ファイル、API のレスポンスなどです。仕組みを理解しておくと、多くの作業がぐっとわかりやすくなります。

Base64 とは

Base64 は、バイナリデータをテキストに変換する方式です。バイナリデータ(バイト列)を、印字可能な 64 種類の ASCII 文字だけで表します。

A–Z、a–z、0–9、+、/(パディングに =)

「Base64」という名前は、この 64 文字に由来します。バイナリデータの 3 バイトごとに、Base64 の 4 文字になります。

Base64 が必要な理由

多くのシステムはもともとテキストだけを扱うように作られています。メール(SMTP)、HTML の属性、JSON のフィールド、URL などです。こうしたテキストベースの仕組みの中にバイナリデータ(画像、PDF、生のバイト列)を入れるには、それを安全にテキストとして表す方法が必要です。

Base64 は、どんなバイナリデータも、テキストの解析器に誤解されない安全な印字可能文字の列に変換することで、この問題を解決します。

よくある使い道

HTML / CSS に画像を埋め込む

画像ファイルにリンクする代わりに、こう書けます。
<img src="data:image/png;base64,iVBORw0KGgo..." />
1 ファイルで完結する HTML や、外部リンクがブロックされがちなメールテンプレートの小さなアイコンに便利です。

JSON Web Token(JWT)

JWT は、ドットで区切られた 3 つの Base64 エンコード部分でできています。 Header.Payload.Signature

ヘッダーとペイロードは Base64 でエンコードされた JSON オブジェクトです。注意:暗号化ではなくエンコードなので、誰でもデコードできます。トークンの中身は ZapFile の JWT デコーダーで確認できます。

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

メールの添付ファイルは、テキストのメールプロトコルの中に Base64 でエンコードされたバイナリとして埋め込まれています。これはメールソフトが自動で処理します。

API のレスポンス

JSON はバイナリを直接扱えないため、一部の API は画像や PDF などを JSON の中の Base64 文字列として返します。

HTTP Basic 認証

Authorization: Basic ヘッダーは、ユーザー名:パスワード を Base64 でエンコードしたものです。これは暗号化ではなく、ただのエンコードです。必ず HTTPS を使いましょう。

オンラインでエンコード・デコードする

ZapFile の Base64 エンコーダー / デコーダーでは、次のことができます。

  • テキストやファイルを Base64 文字列にエンコードする

  • Base64 文字列をテキストやダウンロード可能なファイルにデコードする

  • 埋め込み画像の data URL をすぐにプレビューする

Base64 はデータを圧縮する?

いいえ、逆です。Base64 にするとデータは約 33% 大きくなります。3 バイトが 4 文字になるからです。Base64 は互換性のためのもので、圧縮のためではありません。

Base64 と Base64url

標準の Base64 は、URL では特別な意味を持つ + と / を使います。Base64url はこれを - と _ に置き換え、URL パラメーターや JWT トークンで安全に使えるようにしたものです。

まとめ

  • Base64 は、バイナリデータをテキストベースのシステムで使うために印字可能な ASCII 文字で表す
  • 埋め込み画像、JWT、メールの添付、API のレスポンスでよく使われる
  • サイズは約 33% 増える。互換性のためで、圧縮のためではない
  • JWT や Base64 文字列は ZapFile のツールですぐにデコードできます

関連記事