Base64 エンコードの解説: 何であり、いつ使うか
更新 2026-07-06
Base64 はデータ URI・メール添付・API トークン・設定ファイルなどで絶えず登場しますが、きちんと説明されることはまれです。しばしば暗号化と誤解され、それが本物のセキュリティミスにつながります。このガイドは Base64 が実際に何をするのか、なぜデータが大きくなるのか、どこで本当に役立つのか、そして捨てるべき誤解を説明します。
Base64 とは
Base64 はエンコードであり、暗号化でも圧縮でもありません。その役目は、任意のバイナリデータ — 画像、ファイル、あらゆるバイト列 — を 64 個の「安全な」テキスト文字だけで表すことです: A–Z、a–z、0–9、それに + と /(パディングには =)。これらの文字はいずれも、プレーンテキストを扱うよう作られたシステムを無事に通過します。それこそが Base64 が存在する理由です。
なぜ必要なのか
今なお重要な古いシステムの多く — メールが典型例 — は テキスト を運ぶよう設計されており、生のバイナリのためではありません。バイナリをそのまま通すとデータが壊れることがあります: 特定のバイト値が制御文字と解釈されたり、削られたり、崩れたり。Base64 はバイナリをそのまま通るテキスト形式に変換し、反対側で戻すことで、この問題を回避します。
概念的には往復はこう見えます:
バイナリデータ → Base64 テキスト → バイナリデータ (元) (送信に安全) (同一のコピー)
なぜ Base64 はデータを約 33% 大きくするのか
ただ飯はありません。Base64 は入力 3 バイト(24 ビット)を 4 つの 6 ビットグループに分け、それぞれを 64 文字の 1 つに対応させます。3 バイト入って 4 文字出るので、エンコード出力は元より約 3 分の 1 大きく なります。このオーバーヘッドはバイナリをテキストとして安全にする代償であり、大きなファイルを理由もなく Base64 エンコードすべきでない理由です。
実際にどこで見かけるか
データ URI
小さな画像を、別のネットワークリクエストなしに Base64 データ URI として HTML や CSS に直接埋め込めます:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUh..." />
小さなアイコンには便利ですが、33% のサイズペナルティのため、大きなものには不向きです。
メール添付
内部では、メール添付は Base64 エンコードされ、バイナリファイルがテキストベースのメールシステムを無傷で通れるようにします。
トークンと設定
トークンや資格情報は、ヘッダー・URL・テキスト設定ファイルの中に安全に収まるよう、よく Base64 エンコードされます。たとえば JWT(JSON Web Token) はドットでつながれた 3 つの Base64 区間で、JWT デコーダがその中身を即座に読める理由がまさにこれです。
セキュリティの誤解
最も重要な理解: Base64 は暗号化ではなく、いかなるセキュリティも提供しません。 鍵も秘密もなく — 誰でも一瞬で Base64 を元のデータに戻せます。パスワードや API キーが Base64 だけで「保護」されているなら、実質プレーンテキストと同じだと考えてください。
Base64 は「このデータをテキストチャネルで安全に運ぶには?」に答えるもので、「このデータを秘密に保つには?」には答えません。秘密が必要なら本物の暗号化が必要です。両者を組み合わせるのが一般的です: まず暗号化し、その結果をテキストとして送れるよう Base64 エンコードします。
Base64 と URL
標準の Base64 は + と / を使いますが、これらは URL で特別な意味を持ち、クエリパラメータとして渡すと壊れることがあります。Base64URL という変種はこれらを - と _ に置き換え、パディングを省き、出力を URL にそのまま入れても安全にします。URL 内の空白やアンパサンドのような文字と格闘しているなら、それは URL エンコード の仕事です — 別の問題のための別のツールです。
自分でエンコード・デコードする
Base64 を手で行うことはまれですが、調べたり作ったりはよく必要になります — データ URI を読む、トークンの中身を確認する、埋め込み画像を作る、など。当サイトの Base64 エンコーダ・デコーダ はテキストをどちらの方向にも即座に、すべてブラウザ内で変換するので、機密の値も端末を離れません。Base64 を貼れば元が見え、テキストを貼ればエンコード形が得られます。
一行まとめ
Base64 はバイナリを安全なテキストに変えて戻し、約 33% のサイズ増を代償に、秘密性はゼロです。データを 運ぶ のに使い、決して 守る のには使わないでください。
データフォーマット & エンコーディング をもっと見る
データフォーマット & エンコーディング のガイドをすべて見る →このガイドで触れたツール