Base64エンコーディング完全攻略:開発者のための使用ガイド

Base64とは何ですか?なぜ画像をテキストに変換するのですか?開発中によく出会うBase64エンコーディングのすべてを分かりやすく説明します。

1. Base64とは?

Base64はバイナリデータ(画像、ファイルなど)をテキスト形式に変換するエンコーディング方式です。64個の安全な文字(A-Z、a-z、0-9、+、/)だけを使用してデータを表現します。

例:

元のテキスト: Hello

Base64エンコード: SGVsbG8=

2. なぜBase64を使うのか?

理由 #1: メール送信

メールはテキストのみ送信できます。画像添付ファイルはBase64に変換されて送信されます。

理由 #2: Data URI

HTML/CSSで画像を直接挿入する際にBase64を使用します。

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

理由 #3: API認証

Basic Authenticationでusername:passwordをBase64でエンコードして送信します。

3. Base64の長所と短所

長所:

  • ✅ バイナリデータをテキストとして安全に送信
  • ✅ 別途ファイルアップロード不要でHTML/CSSに画像挿入可能
  • ✅ HTTPリクエスト数削減(小さいアイコン)

短所:

  • ❌ 容量が約33%増加
  • ❌ 大きな画像には不向き
  • ❌ ブラウザキャッシング不可

4. Base64使用例

例 1: 小さいアイコン挿入

ウェブサイトの読み込み速度を上げるため、小さいアイコン(10KB以下)をBase64でエンコードしてCSSに直接挿入します。

例 2: JWTトークン

JSON Web TokenはHeaderとPayloadをBase64でエンコードします。

例 3: 画像プレビュー

ファイルアップロードプレビュー機能で画像をBase64に変換して即座に表示します。

5. Base64エンコード/デコード方法

JavaScript:

// エンコード const encoded = btoa("Hello");  // "SGVsbG8=" // デコード const decoded = atob("SGVsbG8=");  // "Hello"

Python:

import base64 # エンコード encoded = base64.b64encode(b"Hello") # デコード decoded = base64.b64decode(encoded)

6. Base64は暗号化ではありません!

⚠️ 重要な注意事項

Base64はエンコーディングであり、暗号化ではありません。誰でも簡単にデコードできるため、パスワードや個人情報をBase64だけで保護してはいけません!

まとめ

Base64は開発者なら必ず知っておくべき基本概念です。いつ使用し、いつ使用しないべきかを正しく理解するだけでも、Web性能最適化に大きく役立ちます。

Cheetsetがあなたの開発の旅を応援します!🚀

Share this post

Base64エンコーディング完全攻略:開発者のための使用ガイド