Base64 エンコード
無料のオンライン 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 形式でメール添付のバイナリを扱う
使い方
- モードを選択: Encode(エンコード)または Decode(デコード)をクリックして切り替えます
- 変種を選択: Standard、URL-Safe(JWT / OAuth)、MIME(メール形式 76文字改行)から選びます
- 内容を入力: テキストまたは Base64 文字列を貼り付けると自動でリアルタイム処理します
- 統計を確認: 下部に文字数とサイズ増加率(エンコード時は約 33% 増加)が表示されます
- 結果をコピー: 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 Base64JWT の 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つの変種比較
| 特性 | Standard | URL-Safe | MIME |
|---|---|---|---|
| 特殊文字 | + / | - _ | + / |
| Padding(=) | 使用 | 通常省略 | 使用 |
| 改行 | なし | なし | 76文字ごとに改行 |
| 標準 | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| 代表的な用途 | Data URI、一般的なエンコード | JWT、URLパラメータ、ファイル名 | メール添付、SMTP転送 |
Base系エンコード比較表
| エンコード | 文字数 | 文字セットの特徴 | サイズ増加 | 代表的な用途 |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | デバッグ、ハッシュ表示 |
Base32 | 32 | A-Z, 2-7(大文字で混同しにくい) | 60% | DNS、TOTPキー、QRコード |
Base58 | 58 | 紛らわしい 0/O/I/l を除外 | 38% | ビットコインアドレス、暗号資産 |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | 短縮URL、IDエンコード |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI、MIME、JWT(URL-Safe変種) |
Authoritative References
- ReferenceRFC 4648 - The Base16, Base32, and Base64 Data Encodings
- ReferenceRFC 2045 - MIME Part One: Format of Internet Message Bodies
- ReferenceRFC 7519 - JSON Web Token (JWT)
- ReferenceMDN Web Docs - btoa()
- ReferenceMDN Web Docs - atob()
- ReferenceWikipedia - Base64
- 安全文字列比較
- 二進数変換
- シーザー暗号
- モールス信号
- 16進数変換
- 動画→Base64変換
- Base64 を動画に変換
- 画像をBase64に変換
- Base64を画像に変換
- テキスト→Base64変換
- Base64→テキスト変換
- ファイルハッシュ検証
- File to Base64
- Base64→ファイル変換
- 音声→Base64
- Base64を音声に変換
- AES暗号化・復号化
- DES暗号化/復号
- Base32 エンコーダー デコーダー
- Base58 エンコードとデコード
- Base64 エンコード
- Base64 デコード
- Base64比較
- Base64 分割
- Base64複数行マージ
- Base64フォーマット
- Base64形式チェック
- Base64一括エンコード
- Base64一括デコード
- Base64クリーナー
- Base64 パディング処理
- Base64長さ統計
- Base64→16進数変換
- Base64 DataURL 変換
- Base64-Hex双方向変換
- Base85エンコーダー/デコーダー
- HMAC生成と検証
- PBKDF2鍵導出
- MD5 ハッシュ値
- SHA-256 ハッシュ
- SHA1 ハッシュ
- SHA512ハッシュ
- JWT デコーダー
- HTMLエンティティエンコード/デコード
- Unicodeエスケープ
- URL エンコード
- URL Safe Base64変換
- MIME Base64
- Java難読化
- JS難読化
- PHP難読化
- Python難読化