Base64 エンコード・デコード オンライン — テキスト、ファイル、データ URL
テキストやファイルを Base64 にエンコードし、画像を CSS や <img> のコード付きでデータ URI に変換、Base64 をプレビュー可能なファイルにデコードできます。データはブラウザの外に出ません。
RnJlZVRvb2xzRm9yV2ViIOKAlCBCYXNlNjQg44Gv5paH5a2X44Gn44Gv44Gq44GP44OQ44Kk44OI44KS44Ko44Oz44Kz44O844OJ44GX44G+44GZ44CC57W15paH5a2X44KC5L2/44GI44G+44GZ77ya8J+Msg==
すべてブラウザ内で動作します。入力内容が送信・保存されることはありません。 すべての無料ツールを見る.
不具合や改善できそうな点を見つけましたか?いただいたメッセージはすべて読み、すぐに対応します。
この無料の Base64 エンコーダー・デコーダーは、テキストやファイルを Base64 に変換し、また元に戻す処理をブラウザ内で行います。UTF-8 を正しく扱うので、アクセント付き文字、中国語、絵文字も往復変換で崩れません。手軽なオンライン変換ツールの多くは、ここで気づかないうちに失敗しています。画像やフォントをドロップすれば、データ URI と、すぐに使える CSS の背景指定や <img> のコードが得られ、サイズの増加量も明示されます。データ URI や素の Base64 を貼り付ければ、画像をプレビューしてファイルとしてダウンロードできます。複数のファイルもまとめて扱えます。最大 50 個を一度にドロップすると、データ URI の表ができ、コピーしたり JSON や CSV でダウンロードしたりできます。テキストモードでは、リストを 1 行ずつエンコード・デコードすることもできます。
Base64 は暗号化でも圧縮でもありません。JSON、メール、URL など、テキストしか受け付けない経路でバイナリデータを運ぶための方法で、その代わりにバイト数が約 33% 増えます。これを理解していれば、いつ使うべきかはほぼわかります。残りは以下の解説で説明します。
使い方
- エンコードかデコードを選びます。エンコードの場合はテキストを入力するか貼り付けると、入力に合わせて Base64 が表示されます。
- 値を URL や JWT に入れる場合は URL セーフをオンにします。+ と / が - と _ になり、パディングが削除されます。
- ファイルをエンコードするには、「ファイル → Base64 / データ URI」タブを開いてファイルを選ぶかドロップします。素の Base64、データ URI、CSS や <img> のコードをコピーできます。
- Base64 をファイルに戻すには、「Base64 / データ URI → ファイル」を開いて貼り付けます。種類は data: プレフィックスから読み取るかバイト列から判定し、画像やメディアはプレビューされます。ダウンロードを押すと正しい拡張子で保存されます。
- サイズの行を確認しましょう。エンコード結果がメガバイト単位になりそうなら、普通にファイルを参照するほうがほぼ確実に良い設計です。
よくある質問
複数のファイルや行をまとめて Base64 に変換できますか?
はい。ファイルタブで最大 50 ファイル(合計 25 MB)を選ぶかドロップすると、それぞれが種類、サイズ、Base64、データ URI を持つ行になり、1 つずつコピーすることも、まとめて JSON や CSV でダウンロードすることもできます。テキストタブでは「各行を個別に」にチェックを入れると、リストの各行を個別にエンコード・デコードできます。有効な Base64 でない行はエラーとして表示され空欄になりますが、他の行には影響しません。
Base64 は安全ですか?データを隠すのに使えますか?
いいえ。Base64 は暗号化ではなくエンコードで、このページを含め誰でもすぐにデコードできます。バイナリデータをテキストとして安全に運ぶためのものです。機密性が必要な場合は、まず暗号化し、テキストの経路が必要ならその暗号文を Base64 にしてください。
デコードしたテキストに変な文字が表示されるのはなぜですか?
たいていは、元のテキストが UTF-8 でなかったか、Base64 を作ったツールが各文字の UTF-8 バイトではなくコードポイントをエンコードしていた(定番の btoa() のバグ)のが原因です。このツールは常に UTF-8 のバイトでエンコード・デコードします。元が Latin-1 や UTF-16 だった場合も、バイト自体は正しく、テキストの表示が異なるだけです。
URL セーフな Base64 とは何ですか?
標準の Base64 は + と / を使いますが、どちらも URL の中では意味を持つ文字です。また、パディングに使う = は URL エンコーダーで崩れてしまいます。URL セーフ版(RFC 4648 の 5 章)はこれらを - と _ に置き換え、通常はパディングを省略します。JWT、OAuth の state 値、多くの API トークンで使われています。このツールのデコーダーはどちらの形式も受け付けます。
画像を Base64 のデータ URL として埋め込むべきですか?
ごく小さなアセット(数 KB 未満のアイコン、小さなインライン SVG、フォントのサブセット)なら、データ URL にすればリクエストが 1 往復減るので価値があります。それより大きなものは、やめておきましょう。ファイルが 3 分の 1 大きくなり、ページとは別にキャッシュできず、埋め込んだ HTML や CSS の解析を妨げます。目安としておよそ 5〜10 KB を超えるなら、通常のファイル参照のほうが有利です。
何かアップロードされますか?
いいえ。テキストはブラウザの TextEncoder と btoa/atob で変換し、ファイルは File API でローカルに読み込みます。サーバーには何も送信されません。
Base64 を画像に戻すには?
文字列を「Base64 / データ URI → ファイル」タブに貼り付けます。data:image/png;base64, で始まる場合はそのプレフィックスから種類を判定し、素の Base64 の場合は先頭のバイト(PNG、JPEG、GIF、WebP、AVIF、SVG、PDF、MP3、MP4 などの一般的なシグネチャ)を読んで判定します。画像はページ上でプレビューされ、ダウンロードを押すと通常のファイルとして保存されます。
Base64 の仕組みを一段落で
入力の 3 バイト(24 ビット)ごとに 6 ビットずつ 4 つのグループに分け、各グループを A〜Z、a〜z、0〜9、+、/ の 64 文字のいずれかで表します。そのため出力の長さは常に 4 の倍数で入力のおよそ 4/3 になり、入力が 3 バイトの倍数でないときは = のパディングが付きます。デコードはこれを正確に逆にたどるので、情報は失われません。
Base64 が使われている場面
• HTTP Basic 認証:Authorization ヘッダーは user:password を Base64 で運びます(暗号化されていないため HTTPS が必要です)。
• JWT:ヘッダーとペイロードは URL セーフな Base64 の JSON です。当サイトの JWT デコーダーでデコードできます。
• メールの添付ファイル(MIME)や HTML メールの埋め込み画像。
• CSS や HTML のデータ URL、一部の JSON API の画像フィールド。
• バイト型を持たない JSON や XML でのバイナリ値。
データ URI の構造とサイズの増加
データ URI は data:[メディアタイプ][;base64],データ という形式です。data:image/png;base64,iVBORw0… は PNG を運びます。;base64 がない場合、データはパーセントエンコードされたテキストで、SVG ではこちらのほうが小さくなることがよくあります。ブラウザはメディアタイプを使って描画するので、誤ったメディアタイプ(JPEG のバイトに image/png)を付けると、場面によっては画像が表示されなくなります。
Base64 は 3 バイトごとに 4 文字に変換するので、ペイロードは 3 分の 1(33.3%、さらにパディング文字が最大 2 つ)増え、data: プレフィックスの分もわずかに増えます。HTML や CSS に gzip や Brotli をかければ一部は取り戻せますが、全部ではありません。このツールはファイルごとに正確な数値を表示するので、インライン化する価値があるか判断できます。5〜10 KB を超えるほとんどの画像では、その価値はありません。