Skip to content
DocsAll
教程

Base64エンコード・デコード完全ガイド:原理、用途、落とし穴

Timi Tian · 公開日 2026年5月2日 · 更新日 2026年7月12日
Base64エンコード・デコードフロントエンド開発

Base64とは

Base64は、バイナリデータを64個の印字可能文字(A-Z、a-z、0-9、+、/)にエンコードする方式です。暗号化ではなく、単に「書き方を変える」だけで、バイナリデータをテキストの経路で送れるようにします。エンコード後のデータサイズは約33%大きくなります。

Base64を使う理由

多くのシステムはテキスト転送しかサポートしていません。例えばメール、JSON、URL、XMLなどです。これらの経路で画像、音声、バイナリファイルを送るには、まずテキストにエンコードする必要があります。Base64が最も汎用的なソリューションです。

よくある用途

1. メール添付

メールプロトコルは元々ASCIIテキストしかサポートしておらず、添付ファイル(画像、ドキュメント)はBase64エンコードしてからでないと転送できません。

2. データURI / インライン画像

画像をBase64に変換してHTML/CSSに直接埋め込むと、HTTPリクエストを減らせます。詳しくはBase64画像の使い方ガイドをご覧ください。

3. APIデータ転送

JSONはバイナリをサポートしません。画像やファイルを送る際は、まずBase64で文字列にエンコードしてJSONに入れます。

4. 環境変数の保存

証明書や鍵などのバイナリ設定は、Base64エンコードして環境変数に保存します。

DocsAll Base64エンコード・デコードツール

エンコード・デコードツールでワンクリック操作:

  1. エンコード・デコードツールを開く
  2. Base64モードを選択
  3. テキストを貼り付け → 「エンコード」をクリックしてBase64を取得、またはBase64を貼り付け → 「デコード」をクリックして復元
  4. 結果をコピー

ツールはURLエンコード、HTMLエンティティエンコードも同時にサポートし、よくあるニーズをカバーします。

エンコード例

テキスト Hello をエンコードすると SGVsbG8= になります。末尾のイコールに注意してください。Base64はイコールで桁数を補完しており、エラーではありません。

よくある落とし穴

Base64は暗号化ではない

誰でもデコードできます。絶対に敏感なデータの「暗号化」に使わないでください。暗号化にはAESやRSAなどのアルゴリズムを使ってください。

サイズが33%大きくなる

Base64エンコード後、3バイトごとに4文字になり、転送と保存のコストが増加します。大きなファイルでは慎重に使ってください。

文字セットの問題

標準のBase64には + と / が含まれており、URLに置くと問題が起きます。URLのケースでは、URLセーフのBase64(+ を - に、/ を _ に置き換え)を使ってください。

改行

一部のBase64実装は76文字ごとに改行を入れ、デコード時には通常改行を無視します。デコードに失敗した場合は、余分な改行やスペースがないかまず確認してください。

実践的なアドバイス

  • エンコード前にデータがテキストかバイナリかを確認し、適切なモードを選ぶ
  • デコード失敗時は、文字が完全か、スペースや改行がないかをまず確認
  • 大きなファイルをBase64でインライン化しない、サイズ膨張が激しいため

Base64をマスターすると、フロントエンド・バックエンドのデバッグやデータ転送がかなりスムーズになります。

T
Timi Tian 创始人 / 全栈工程师

DocsAll 创始人,10 年全栈开发经验,专注浏览器端文档处理技术与隐私保护架构。前新加坡科技公司技术负责人。