tools24.jp

※ 当サイトはアフィリエイト広告を利用しています。リンク先のサービスへの申し込みがあった場合、 当サイトに報酬が支払われることがあります。なお、ツールの機能・ランキング・評価には一切影響しません。

Base64エンコードとは?仕組み・用途・変換方法をわかりやすく解説

最終更新: 2026年3月29日 ・ 読了時間: 約5分

Base64は、バイナリデータをテキスト文字列に変換するエンコーディング方式です。 メールの添付ファイル、Data URI、JWTトークン、API認証ヘッダーなど、 現代のWeb開発やシステム連携で幅広く使われています。 この記事ではBase64の仕組みから実際の変換方法まで、わかりやすく解説します。

Base64とは — バイナリ→テキスト変換の仕組み

コンピュータが扱うデータには、テキスト(文字列)とバイナリ(画像・音声・実行ファイルなど)の2種類があります。 メールやHTMLなど、テキストしか扱えないプロトコルやフォーマットでバイナリデータを送りたい場合、 バイナリをテキストに変換する必要があります。この変換を行うのがBase64です。

Base64は、A-Z(26文字)、a-z(26文字)、0-9(10文字)、+、/の合計64種類の文字と、 パディング用の「=」を使ってデータを表現します。 ASCII文字だけで構成されるため、テキストベースのあらゆるシステムで安全に転送できます。

なぜBase64が必要か — メール添付・Data URI・JWT・API認証

Base64が使われる主なシーンは以下の通りです。

エンコードの仕組み — 3バイト→4文字への変換プロセス

Base64エンコードは、入力データを3バイト(24ビット)ずつ区切り、 それを6ビットずつ4つのグループに分割して変換します。

ステップ処理内容例("ABC")
1. ASCII値に変換各文字をバイト値にする65, 66, 67
2. 2進数に変換8ビットずつ連結(24ビット)01000001 01000010 01000011
3. 6ビットに分割24ビットを4グループに分割010000 010100 001001 000011
4. Base64文字に変換各6ビット値を変換テーブルで文字にQ, U, J, D → "QUJD"

入力が3バイトの倍数でない場合は、足りない分を0で埋め、出力には「=」(パディング)が追加されます。 1バイト余りなら「==」、2バイト余りなら「=」が末尾に付きます。

URLセーフBase64との違い — + / = の代替文字

標準のBase64で使われる「+」「/」「=」は、URLやファイル名で特別な意味を持つため、 そのまま使うと問題が生じることがあります。 URLセーフBase64(Base64URL)では、以下のように文字を置き換えます。

標準Base64Base64URL理由
+-URLで「+」はスペースに変換される
/_URLで「/」はパス区切りになる
=(省略)URLで「=」はクエリパラメータに使われる

プログラミング言語別の変換方法

JavaScript(ブラウザ)

// エンコード(ASCII文字列のみ)
const encoded = btoa('Hello, World!');
// → "SGVsbG8sIFdvcmxkIQ=="

// デコード
const decoded = atob(encoded);
// → "Hello, World!"

// 日本語を含む場合(UTF-8対応)
const utf8Encode = btoa(
  new TextEncoder().encode('こんにちは')
    .reduce((s, b) => s + String.fromCharCode(b), '')
);

Python

import base64

# エンコード
encoded = base64.b64encode(b'Hello, World!')
# → b'SGVsbG8sIFdvcmxkIQ=='

# デコード
decoded = base64.b64decode(encoded)
# → b'Hello, World!'

# URLセーフBase64
url_safe = base64.urlsafe_b64encode(b'data')
# → b'ZGF0YQ=='

セキュリティの注意 — Base64は暗号化ではない

Base64はデータの「見た目」を変えるだけで、暗号化ではありません。 Base64エンコードされた文字列は、誰でも簡単にデコードして元のデータを読み取れます。 パスワードやAPIキーなどの機密情報をBase64でエンコードしただけで「安全」と考えるのは危険です。

Basic認証がHTTPS必須とされるのも、Authorizationヘッダーに含まれるBase64文字列が 簡単にデコードできるためです。機密データの保護には、必ずTLS/HTTPSと組み合わせるか、 AES・RSAなどの暗号化アルゴリズムを使用してください。

tools24.jpでBase64変換する

テキストやファイルのBase64エンコード・デコードを行いたい場合は、tools24.jpのエンコード・デコードツールをご利用ください。ブラウザ内で処理するため、データがサーバーに送信されることはありません。 URLセーフBase64への変換にも対応しています。

関連ガイド

よくある質問