Base64 エンコーディングとは何か、いつ使うか

· 4 分で読めます

API、メールシステム、Web 開発に関わっているなら、それと気付かずに Base64 を目にしたことがあるはずです。意味不明に見える長い文字と数字の文字列 — おそらくそれは Base64 です。

Base64 が行うこと

Base64 はバイナリデータ(任意のバイト列)を、64 種類の「安全な」文字だけを使ったテキスト文字列に変換します:A〜Z、a〜z、0〜9、+、/。結果は必要に応じて末尾に = のパディングが付きます。

例:

このエンコーディングは、多くのシステム(メール、JSON、URL、XML)がテキストしか扱えないために存在します。バイナリデータ — 画像、圧縮ファイル、生のバイト — は、それらのシステムを壊す文字を含むことがあります。Base64 はバイナリを、テキストチャネルを破損なく通れるテキストに変換します。

よくある用途

HTML / CSS に画像を埋め込む:

<img src="data:image/png;base64,iVBORw0KGgoAAAA..." />

小さなアイコンやロゴを HTML に直接埋め込めば、追加の HTTP リクエストを 1 つ減らせます。

API ペイロード:API が JSON を期待する一方でバイナリ(ファイル添付、署名画像)を送る必要があるとき、Base64 にエンコードすれば普通のテキストフィールドとして含められます。

メール添付:メールプロトコル(SMTP)はテキストベースです。すべての添付ファイルは舞台裏で Base64 にエンコードされ、テキストとして送信されます。

認証ヘッダー:HTTP Basic 認証では username:password を Base64 にエンコードして Authorization ヘッダーに入れます。(これはエンコーディングであり暗号化ではありません — それ自体にセキュリティはありません。)

エンコード・デコードの方法

  1. エンコードかデコードを選ぶ — 変換方向を選択します。
  2. テキストを貼り付けるかファイルをアップロード — テキストを直接入力するか、ファイル(最大 5 MB)をドラッグ&ドロップします。
  3. 結果をコピー — 出力はその場で更新されます。クリップボードにコピーしてください。

Base64 を使うべきとき

使うとき:

使わないとき:

ヒント

よくある質問

Base64 はデータを暗号化しますか?

いいえ。Base64 はエンコーディングであって暗号化ではありません。誰でも Base64 文字列をデコードできるため、セキュリティはありません。データを保護したいなら、本物の暗号化(AES、RSA など)を使ってください。

なぜ Base64 でファイルが大きくなるのですか?

Base64 エンコーディングはデータサイズを約 33 % 増やします。3 バイトのバイナリが 4 文字の Base64 になります。このオーバーヘッドは、バイナリをテキストとして安全に転送できるための代償です。

テキストだけでなくファイルもエンコードできますか?

はい。任意のファイル(画像、PDF、音声)を Base64 にエンコードできます。データ URL として小さな画像を HTML や CSS に直接埋め込むのによく使われます。

Base64 を使うべきでないのはいつですか?

大きなファイルには使わないでください。1 MB の画像は Base64 テキストにすると 1.33 MB になり、ブラウザは別途キャッシュできません。数 KB を超えるなら、ファイルを普通に配信するほうが効率的です。