Base64 エンコード

入力テキスト
0文字

無料のオンライン Base64 エンコード・デコードツール。UTF-8 / ASCII / ISO-8859-1 に対応し、Standard / URL-Safe / MIME の3変種を選べます。サイズ増加率もリアルタイム表示し、MIME 改行は RFC 2045 準拠です。

関連おすすめ

Base64 エンコードとは?

Base64 は、64 個の印字可能 ASCII 文字を使ってバイナリデータをテキストへ変換する方式です。最初に RFC 2045(MIME 標準)で定義されました。3 バイト(24ビット)を 4 文字の Base64 文字(A-Z、a-z、0-9、+、/)に変換することで、HTTP ヘッダー、JSON、XML、URL パラメータのようなテキスト中心のシステムでも安全に扱えるようにします。

**Base64 は暗号化ではありません**。単なるデータ形式変換であり、誰でも簡単に元に戻せます。機密データを保護したいなら AES など本物の暗号化を使う必要があります。代表的な用途には、HTTP Basic Authentication(`Authorization: Basic dXNlcjpwYXNz`)、JWT の header / payload(Base64URL 形式)、Data URI(`data:image/png;base64,...`)、メール添付の MIME エンコードなどがあります。

**URL-Safe Base64**(RFC 4648 §5)は、標準 Base64 の + / を - _ に置き換え、通常は = の padding を省略します。これにより URL、ファイルパス、JSON フィールドの中でも安全に使えます。JWT、OAuth PKCE の code_verifier、AWS Signature V4 などで広く使われます。

**MIME 折り返し**は RFC 2045 で定義される 1 行 76 文字までの標準です。Base64 内容をメールや改行前提の場面で使うとき、MIME 変種は 76 文字ごとに自動で改行(`\n`)を入れます。これはメール添付の標準的な形式です。

このツールはブラウザー標準の **btoa / atob API** と UTF-8 安全な処理を組み合わせ、日本語、絵文字、多バイト文字も正しくエンコードできるようにしています。処理はすべてローカルで行われ、データはどのサーバーにも送信されません。開発者ツールのネットワークパネルでも外部通信がないことを確認できます。

ユースケース

  • JWT デバッグ: JWT の header / payload(Base64URL)をデコードして内容を確認する
  • Basic Auth: username:password を HTTP Basic 認証用にエンコードする
  • OAuth 開発: PKCE の code_verifier を生成したり code_challenge を検証する
  • API デバッグ: JSON データをエンコードしたり、API が返す Base64 フィールドを読む
  • Data URI 画像埋め込み: 小さなアイコンを data:image/...;base64,... として CSS / HTML に埋め込む
  • メール添付エンコード: MIME Base64 形式でメール添付のバイナリを扱う

使い方

  1. モードを選択: Encode(エンコード)または Decode(デコード)をクリックして切り替えます
  2. 変種を選択: Standard、URL-Safe(JWT / OAuth)、MIME(メール形式 76文字改行)から選びます
  3. 内容を入力: テキストまたは Base64 文字列を貼り付けると自動でリアルタイム処理します
  4. 統計を確認: 下部に文字数とサイズ増加率(エンコード時は約 33% 増加)が表示されます
  5. 結果をコピー: Base64 文字列またはデコード済みテキストをワンクリックでコピーできます

特徴

  • Encode / Decode をワンクリック切替: エンコードとデコードを自由に切り替え、出力を次の入力としてそのまま使えます
  • 3種類の文字セット対応: UTF-8(日本語 / 中国語 / emoji)、ASCII、ISO-8859-1 をカバー
  • 3種類の出力変種: Standard、URL-Safe(JWT / OAuth / PKCE 向け)、MIME(RFC 2045 の 76文字改行)
  • リアルタイムサイズ統計: 入力 / 出力文字数と増加率を即時表示(Base64 は約 33% 増加)
  • 分かりやすいエラー表示: 範囲外文字がある場合も単なる失敗ではなく具体的な理由を表示
  • ドラッグ可能な区切り線: PC では左右エディタ領域の比率を調整可能
  • モバイル向け独立タブ: スマホ / タブレットで入力欄と出力欄を快適に切り替え

コード例

JavaScript での Base64 エンコード(日本語 UTF-8 対応)

// Encode (UTF-8 safe)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// Decode (UTF-8 safe)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe encode (JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Python での Base64 エンコード

import base64

# Standard encode (UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard decode
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe encode (JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())

# Remove padding (common in JWT)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Java での Base64 エンコード

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded);

        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded);

        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

よくある質問

Base64 エンコードと暗号化は同じですか?

違います。Base64 はテキストを可逆な別表現に変換するだけで、誰でも元に戻せます。機密データ(パスワードやトークンなど)を扱う場合は AES など本当の暗号化を使ってください。Base64 はバイナリデータをテキスト系システムで扱いやすくするための形式変換です。

AES 暗号化ツール

Base64 にするとどれくらいサイズが増えますか?

Base64 エンコードでは元データが約 33% 大きくなります。これは 3 バイト(24ビット)ごとに 4 文字の Base64 に変換されるためです。たとえば 100 バイトのテキストはおよそ 133 バイトになります。ツール下部に増加率がリアルタイム表示されます。例: `Hello` → `SGVsbG8=`(約 +33%)。

Base64 統計ツール

Standard、URL-Safe、MIME の違いは何ですか?

Standard は通常の Base64 で、A-Z、a-z、0-9、+、/ を使います。URL-Safe は + と / を - と _ に置き換え、URL パラメータや JWT に適しています。MIME は 76 文字ごとに改行を入れる RFC 2045 準拠の形式で、メール添付や複数行テキスト向けです。

URL-Safe Base64MIME Base64

JWT の header や payload をどうやってデコードしますか?

JWT は Base64URL(URL-Safe 変種)を使います。URL-Safe モードを選び、JWT の1つ目(header)または2つ目(payload)のセグメントを貼り付けるだけでデコードできます。3つ目の署名部分は検証用であり、通常の内容確認用デコード対象ではありません。

JWT ツール

Base64 の Padding(=)とは何ですか?

Base64 の結果は長さが 4 の倍数である必要があります。入力が 3 バイト単位で割り切れない場合、末尾に = を使って埋めます。標準 Base64 は padding を使い、Base64URL では省略されることが多いです。このツールは padding を自動処理し、デコード時も自動で扱います。

Base64 Padding ツール

JavaScript の btoa と atob が日本語を直接扱えないのはなぜですか?

btoa と atob はブラウザー標準 API ですが、扱うのは Latin-1(ISO-8859-1)文字列で、1文字 = 1バイトを前提としています。日本語などの UTF-8 文字は複数バイトなので、そのまま渡すとエラーになります。先に encodeURIComponent で UTF-8 バイト列に変換してから処理するのが一般的です。

Data URI Scheme とは何ですか? Base64 で画像を埋め込むには?

Data URI はデータを URL に直接埋め込む形式で、書式は `data:[<mediatype>][;base64],<data>` です。例: `data:image/png;base64,iVBORw0KGgo...`。小さなアイコンや CSS 背景画像の埋め込みに使えますが、Base64 化で約 33% サイズが増えるため、大きいファイルには通常の URL のほうが向いています。

Data URI ツールBase64 を画像に変換

用語集

RFC 4648
IETF が公開した Base16 / Base32 / Base64 の公式標準です。標準 Base64 と URL-Safe Base64 の文字表、padding、改行、非対応文字の扱いなどを定義します。現在の Base64 実装の事実上の標準です。URL-Safe Base64 ツールBase64 Padding ツール
RFC 2045 (MIME)
Multipurpose Internet Mail Extensions の標準で、Base64 をメール本文や添付の転送方式として定義しました。1行 76 文字、CRLF 改行を使う MIME Base64 変種の基礎です。MIME Base64 ツール
Base64URL(URL-Safe Base64)
RFC 4648 §5 で定義された URL 安全変種です。+ を - に、/ を _ に置き換え、通常は末尾の = を省略します。JWT、OAuth PKCE、URL パラメータ、ファイル名などでよく使われます。URL-Safe Base64 ツールJWT ツール
MIME Base64
RFC 2045 準拠の Base64 変種で、76 文字ごとに改行(CRLF)を挿入します。主にメール添付の転送に使われます。MIME Base64 ツール
Padding(埋め草)
Base64 結果は長さが 4 の倍数である必要があります。入力バイト数が 3 の倍数でないとき、末尾に = を付けて長さを合わせます。標準 Base64 は padding を使い、Base64URL では省略されることが多いです。Base64 Padding ツール
Base64 アルファベット
Base64 で使う 64 文字の集合です。標準 Base64 では A-Z、a-z、0-9、+、/ の 64 文字に、必要に応じて = が padding として加わります。
btoa / atob
ブラウザー標準の Base64 エンコード / デコード API です。btoa は binary to ASCII、atob は ASCII to binary を意味します。どちらも Latin-1 前提なので、日本語などは UTF-8 変換が必要です。
Data URI Scheme
小さなファイルを URL に直接埋め込む形式です。書式は data:[<mediatype>][;base64],<data>。小さなアイコンや CSS 背景画像の埋め込みでよく使われます。Data URI ツールBase64 を画像に変換
HTTP Basic Authentication
HTTP の認証方式のひとつで、username:password をコロン連結して Base64 変換し、Authorization ヘッダーに入れます。形式は Authorization: Basic <base64(username:password)> です。Auth Header ビルダー
Base64 サイズ増加率
Base64 変換後にデータサイズがどれだけ増えるかを示す値です。3 バイトを 4 文字へ変換するため、およそ 33% 増加します。padding が加わると少し大きくなる場合があります。

Base64 3つの変種比較

特性StandardURL-SafeMIME
特殊文字+ /- _+ /
Padding(=)使用通常省略使用
改行なしなし76文字ごとに改行
標準RFC 4648 §4RFC 4648 §5RFC 2045
代表的な用途Data URI、一般的なエンコードJWT、URLパラメータ、ファイル名メール添付、SMTP転送

Base系エンコード比較表

エンコード文字数文字セットの特徴サイズ増加代表的な用途
Base16 (Hex)160-9, A-F100%デバッグ、ハッシュ表示
Base3232A-Z, 2-7(大文字で混同しにくい)60%DNS、TOTPキー、QRコード
Base5858紛らわしい 0/O/I/l を除外38%ビットコインアドレス、暗号資産
Base6262A-Z, a-z, 0-934%短縮URL、IDエンコード
Base6464A-Z, a-z, 0-9, +, /33%Data URI、MIME、JWT(URL-Safe変種)

Authoritative References