Base64とは?仕組み・使いどころ・注意点をやさしく解説
更新日 2026-07-28
Base64(ベース64)は、画像や暗号鍵のようなバイナリデータを、テキストだけで安全に運ぶための「符号化方式」です。メールの添付、HTML に画像を直接埋め込む data URL、JWT のペイロードなど、テキストしか通らない場所へバイナリを載せたいときに使われます。この記事では、仕組みと実務での注意点をやさしく整理します。
Base64 の仕組み
コンピュータのデータは 8 ビット(1 バイト)単位ですが、Base64 はこれを 6 ビットずつに区切り直します。3 バイト(24 ビット)を 6 ビット×4 に分け、それぞれを 64 種類の文字(A–Z・a–z・0–9・+・/)へ対応させます。こうして「3 バイト → 4 文字」に変換されるため、データ量はおよそ 4/3、つまり約 33% 増えます。
文字列の長さが 3 の倍数でないときは、末尾に = を付けて長さを調整します。これを「パディング」と呼びます。= は 1〜2 個付くことがあり、壊れた記号ではなく正しい Base64 の一部です。
よくある誤解:Base64 は暗号化ではない
最も重要な注意点は、Base64 は暗号化ではないということです。鍵も何もなく、誰でも一瞬で元へ戻せます。したがって、パスワードや個人情報を Base64 にしても「隠した」ことにはなりません。機密を守りたいときは、暗号化(TLS や適切な暗号アルゴリズム)を使う必要があります。
通常版と URL-safe 版の違い
標準の Base64 は + と / を使いますが、これらは URL の中で特別な意味を持つため、そのまま URL に載せると壊れることがあります。そこで、+ を -、/ を _ に置き換えた「URL-safe Base64」が使われます。JWT などは URL-safe 版を採用しています。用途に応じて、どちらの方式かを意識しましょう。
使いどころのまとめ
- テキストしか扱えない場所にバイナリを載せる(メール添付、data URL など)
- 小さな画像を HTML/CSS に直接埋め込んでリクエスト数を減らす
- JWT のヘッダー・ペイロードの中身を確認する(URL-safe Base64)
- 設定ファイルにバイナリ値を文字列として保存する
実際に試すには、当サイトの Base64 エンコード/デコードツールが便利です。テキストと Base64 を相互に変換でき、すべてブラウザ内で処理するので入力が外部に送られることはありません。JWT の中身を見たい場合は JWT デコードツール、URL のパラメータを扱うなら URL エンコードツールと組み合わせると効率的です。