alltools.one
Encoding
2026-02-18
8 min
alltools.one Team
base64encodingweb-developmentapidata

Base64エンコーディング解説:使い方と活用場面

Base64文字列はあらゆる場所で見かけます — メールの添付ファイル、データURI、APIトークン、さらにはJWTのペイロードにも。文字、数字、時折現れる +/ で構成される長い文字列は暗号化されたデータのように見えるかもしれませんが、Base64は暗号化ではありません。エンコーディング方式であり、その違いを理解することは重要です。

Base64エンコーディングとは?

Base64はバイナリデータを64種類の印刷可能なASCII文字(A-Z、a-z、0-9、+/、パディング用の =)を使ってテキスト表現に変換します。これにより、テキストのみのシステムを通じてバイナリデータを安全に送信できるようになります。

結果は常に元のデータより33%大きくなります — これがテキスト安全性のためのトレードオフです。

Base64エンコーダーで実際に試してみましょう — テキストを貼り付けると即座に変換されます。すべてのエンコーディングはブラウザで行われるため、データのプライバシーは保たれます。

Base64の仕組み

エンコーディングプロセスは入力を6ビットグループに分割し(2^6 = 64のため)、各グループを64文字のうちの1つにマッピングします。入力の長さが3で割り切れない場合、= パディングが追加されます。

Base64の使用場面

HTML/CSSへの画像埋め込み

データURIは小さな画像のHTTPリクエストを排除します。10KB未満のアイコンに最適です。大きな画像の場合は、まず画像オプティマイザーで最適化しましょう。

APIデータ転送

APIがJSONペイロードにバイナリデータを含める必要がある場合、Base64が標準的なエンコーディングです。

JWTトークン

JSON Web TokenはBase64URLエンコーディングを使用します。JWTエンコーダー/デコーダーで任意のJWTをデコードできます。

Basic認証

HTTP Basic Authは資格情報をBase64でエンコードします。重要:これはエンコーディングであり、暗号化ではありません。必ずHTTPSを使用してください。

よくあるBase64の間違い

  1. 暗号化として扱う — Base64はセキュリティをまったく提供しません。実際のハッシュにはハッシュジェネレーターを使用してください
  2. 大きなファイルのエンコード — 33%のサイズ増加は大規模では重要です
  3. 二重エンコード — エンコードする前に、データが既にエンコードされていないか確認しましょう
  4. パディングの忘れ — 一部のシステムは = パディング文字を除去します

各言語でのBase64

JavaScript: btoa('Hello') / atob('SGVsbG8=')

Python: base64.b64encode(b'Hello') / base64.b64decode('SGVsbG8=')

コマンドライン: echo -n 'Hello' | base64

よくある質問

Base64エンコーディングは暗号化と同じですか?

いいえ。Base64は誰でも自由に元に戻せます。セキュリティには適切な暗号化を使用してください。

なぜBase64はデータを大きくするのですか?

3バイトが4文字になります(8ビットの代わりに6ビットずつ)、33%の増加が生じます。

関連リソース

Published on 2026-02-18
Base64 Encoding Explained: When and How to Use It | alltools.one