Base64とは?仕組み・使いどころ・注意点をやさしく解説

公開: 2026-05-14 / カテゴリ: 開発全般 / 読了 8分

「Base64」という言葉は、メール添付・画像の埋め込み・APIトークン・Basic認証など、いたるところで登場します。本記事では 「Base64とは何か」「なぜ使うのか」「使ってはいけない場面」 を、専門用語をできるだけ避けて解説します。

手を動かしながら理解したい方は Base64エンコード/デコード を別タブで開いて、実際に変換しながら読むのがおすすめです。

1. Base64とは「バイナリを64種類の文字で表す」方式

Base64は、画像や暗号鍵などのバイナリデータ(0と1の塊)を、テキストとして安全に運ぶための変換方式です。使う文字は次の64種類だけです。

合計64種類なので「Base64」と呼びます。末尾の長さ調整には =(パディング)を使います。

2. 仕組み:3バイトを4文字に変換する

Base64は 「8ビット × 3 = 24ビット」を「6ビット × 4 = 24ビット」に区切り直す だけのシンプルな仕組みです。6ビットで表せる値は0〜63なので、ちょうど64種類の文字に対応させられます。

元の文字: M       a       n
ASCII:    77      97      110
2進数:    01001101 01100001 01101110
        ┗━━━━━━━ 24ビットを6ビットずつに区切り直す ━━━━━━━┛
6ビット:  010011 010110 000101 101110
10進数:   19     22     5      46
Base64:   T      W      F      u
結果:     "Man" → "TWFu"

元データが3の倍数バイトでないときは、6ビット単位で足りない分を0で埋め、文字列の末尾を = で調整します。

元データBase64パディング
Man(3バイト)TWFuなし
Ma(2バイト)TWE== 1個
M(1バイト)TQ=== 2個

3. 何のために使うのか

「テキストしか通せない経路に、バイナリを通したい」場面で使います。代表例は次のとおりです。

4. 「URLセーフBase64」とは

標準Base64で使う +/ は、URLやファイル名では特別な意味を持つため不都合です。そこで +- に、/_ に置き換えた「URLセーフBase64」が使われます。JWTやクエリパラメータで頻出します。

62番目63番目パディング
標準+/= あり
URLセーフ-_省略されることが多い

5. よくある誤解:Base64は暗号化ではない

最重要:Base64は誰でも元に戻せる「変換」であって、暗号化ではありません。秘密を守る効果はまったくありません

Base64文字列はデコードツールに貼るだけで即座に中身が読めます。パスワードやAPIキーを「Base64にしたから安全」と考えるのは危険です。秘密を守りたい場合は、暗号化(AESなど)やハッシュ化(ハッシュ生成)を使ってください。

6. データ量が約33%増える

Base64は3バイトを4文字に変換するため、データ量が約4/3(約33%)増えます。さらに改行を含む場合はもう少し増えます。大きなファイルをBase64でJSONに埋め込むと通信量・メモリを圧迫するので、大容量データは別経路(ファイルアップロード)を検討しましょう。

7. 各言語での書き方

JavaScript(ブラウザ)

// 文字列 → Base64
btoa(unescape(encodeURIComponent("こんにちは")));
// Base64 → 文字列
decodeURIComponent(escape(atob("44GT44KT44Gr44Gh44Gv")));

btoa はマルチバイト文字をそのまま扱えないため、上記のように UTF-8 を経由します。

Python

import base64
base64.b64encode("Man".encode()).decode()   # 'TWFu'
base64.b64decode("TWFu").decode()            # 'Man'
base64.urlsafe_b64encode(b"...")             # URLセーフ版

コマンドライン

echo -n "Man" | base64          # TWFu
echo "TWFu" | base64 --decode   # Man

8. まとめ

実際に変換を試すなら Base64エンコード/デコード へ。トークンの中身を確認したいときは JWTデコーダ も便利です。

記事に関連するツール

この記事をシェア