コンテンツへスキップ
🚀 10件のツールが公開中、ずっと無料 — ツールボックスは成長を続けます
ホーム›ツール›エンコードツール›Base64 エンコーダー・デコーダー
エンコードツール

Base64 エンコーダー・デコーダー

無料の Base64 エンコーダー・デコーダーです。テキストを貼り付ければエンコードし、Base64 を貼り付ければ元のデータに戻します。URL セーフな文字セット、改行、パディングはすべて手元で選べます。変換はブラウザー内で完結し、何もアップロードされません。

エンコードまたはデコード

下にテキストまたは Base64 を貼り付けてください。入力に合わせてブラウザー内で変換され、アップロードも保存もされません。

方向
結果

上に何か貼り付けると変換します。

オプション
変換の詳細

まだ何も変換していません。

すべてブラウザー内で動きます。

入力したテキストは JavaScript でローカルに変換されます。サーバーに送信されることも、記録されることも、保存されることもありません。ブラウザーのストレージにも残りません。

つまずきやすい細かい点

= のパディング
標準の Base64 は最後のグループを 4 の倍数になるまで 1 個か 2 個の=で埋めます。base64url は通常それを落とします。厳格なデコーダーはパディングなしの形を拒否するため、同じ文字列があるライブラリーでは通り別のライブラリーでは失敗します。
+ / と - _
標準の文字セットは+と/で終わります。どちらも URL では危険なので、base64url はこれを-と_に置き換えます。一方を他方として解釈すると、バイト列は警告もなく壊れます。
改行
MIME は 76 文字、PEM は 64 文字で折り返します。この改行はデータの一部ではありません。デコーダーは無視すべきで、ほとんどは無視しますが、すべてではありません。
文字エンコーディング
Base64 がエンコードするのはバイト列で、文字ではありません。「このテキストをエンコードする」は常に「このバイト列をエンコードする」という意味なので、テキストはまずバイト列になる必要があります。実務上は UTF-8 です。別のエンコーディングを使うエンコーダーは、デコードすると文字化けする Base64 を作ります。
💡 Base64 エンコーダー・デコーダー

Base64 は任意のバイト列を、どんなテキスト経路でも壊れない 64 種類の文字に書き換えます。暗号化でも圧縮でもありません。テキストしか許されない場所へバイナリデータを運ぶための手段で、その代わりにサイズが約 3 分の 1 増えます。このツールは双方向に変換し、何がどう変わったかをそのまま示します。

主なメリット

✓ エンコードとデコードを一か所で、方向の反転はワンクリック
✓ 標準と URL セーフの両方の文字セットに対応し、パディングも双方で処理
✓ 正しい UTF-8 処理。濁点付きの文字や絵文字も往復して壊れません
✓ データはブラウザーの外に出ない

よくある用途

• Authorization: Basic ヘッダーを組み立てる、または読む
• スタイルシートやメールから貼った data: URI をデコードする
• JWT の base64url 部分を手作業で確認する
• 証明書や鍵、小さなファイルをテキストしか通らない欄に通す

使い方

  1. 1.方向を選ぶ。エンコードはテキスト → Base64、デコードはBase64 → テキストを選びます。data: URI の接頭辞は自動で外されます。
  2. 2.入力を貼り付ける。入力に合わせて変換されます。Base64 入力の空白や改行は無視されるので、折り返された MIME ブロックもそのまま貼り付けられます。
  3. 3.オプションを設定する。JWT やクエリー文字列には URL セーフな文字セットを、MIME や PEM には 76 文字ごとの改行を有効にします。
  4. 4.コピーする、または往復させる。結果をコピーするか、反転を押して方向を入れ替えたまま入力へ戻し、元のデータに戻ることを確かめます。

つまずきやすい細かい点

Base64 は単純に見えますが、エンコーダーとデコーダーが次の 4 点のどれかで食い違うと話が変わります。どれも「ほかではデコードできるのにここだけ駄目」の実際の原因です。

= のパディング
標準の Base64 は最後のグループを 4 の倍数になるまで 1 個か 2 個の=で埋めます。base64url は通常それを落とします。厳格なデコーダーはパディングなしの形を拒否するため、同じ文字列があるライブラリーでは通り別のライブラリーでは失敗します。
+ / と - _
標準の文字セットは+と/で終わります。どちらも URL では危険なので、base64url はこれを-と_に置き換えます。一方を他方として解釈すると、バイト列は警告もなく壊れます。
改行
MIME は 76 文字、PEM は 64 文字で折り返します。この改行はデータの一部ではありません。デコーダーは無視すべきで、ほとんどは無視しますが、すべてではありません。
文字エンコーディング
Base64 がエンコードするのはバイト列で、文字ではありません。「このテキストをエンコードする」は常に「このバイト列をエンコードする」という意味なので、テキストはまずバイト列になる必要があります。実務上は UTF-8 です。別のエンコーディングを使うエンコーダーは、デコードすると文字化けする Base64 を作ります。
33 % の増加
3 バイトが 4 文字になるので、出力は入力の 4/3 に、さらにパディングと改行が加わります。リクエストごとに送るものでは、これが効いてきます。
暗号化ではない
Base64 はごく簡単に元に戻せ、秘密性はまったくありません。文字列を持っている人はデータを持っているのと同じです。
チェックサムでもない
Base64 に整合性の検査はありません。1 文字変わるだけで別のバイト列にデコードされ、しかも多くの場合エラーは出ません。
バイナリは当たり前
テキストにデコードされない Base64 は多くあります。画像、鍵、protobuf などです。読める文字ではなくバイト列が返るのは失敗ではありません。

主な機能

  • 双方向に変換でき、往復用の反転ボタン付き
  • 標準と URL セーフ (base64url) の文字セット
  • MIME と PEM 向けに 76 文字ごとの改行を任意で付加
  • パディングなし、改行入り、data: URI 形式の入力もそのまま受け付け
  • 入力と出力のサイズ、エンコードによる増加量を表示
  • デコード結果がテキストでない場合は 16 進表示に切り替え
  • ページ読み込み後はオフラインでも動作。アカウント不要、アップロードなし

Base64 はセキュリティではありません

これははっきり書いておきます。よくある、そして高くつく誤解だからです。Base64 はエンコード方式であって暗号ではありません。鍵はなく、何も隠しません。元に戻すのは関数呼び出し一回です。「Base64 でエンコードした」パスワードやトークン、API キーは、攻撃者から見れば平文のままです。

いちばんわかりやすい例がAuthorization: Basicです。中身はユーザー名:パスワードを Base64 にしただけで、リクエストを見られる人には読めてしまいます。だからこそ HTTPS 以外で流してはいけません。テキストしか通らない経路でバイト列を運ぶには Base64 を、中身を守る必要があるときは本物の暗号化か署名付きトークンを使ってください。さらに詳しく、3 バイトが 4 文字になる仕組み、2 つの文字セット、パディング、サイズの代償までは、Base64 のエンコードとデコードのガイドをご覧ください。

よくある質問

Base64 は何に使うのですか。⌄

Base64 は、テキストしか通せない経路にバイナリデータを通すために使います。メールの添付、CSS や HTML の data: URI、PEM ファイルの証明書と鍵、JSON のフィールド、Authorization: Basic のような HTTP ヘッダーなどです。生のバイト列なら壊れるか拒否される場所でも、Base64 ならそのまま通ります。

Base64 は暗号化ですか。⌄

いいえ。エンコードと暗号化は別のものです。Base64 に鍵はなく、秘密は何も守られません。デコードは関数呼び出し一回で、このページも入力に合わせて実行しています。パスワードやトークン、その他の秘密情報を守る目的で使ってはいけません。

Base64 と base64url の違いは何ですか。⌄

違うのは 2 文字とパディングだけです。標準の Base64 は文字セットの最後が + と / で、これらは URL で特別な意味を持つため、base64url では代わりに - と _ を使い、通常は = のパディングを省きます。JWT は base64url を使います。一方を他方として解釈するとデコード結果が壊れるので、このツールは両方を受け付け、どちらだったかを表示します。

Base64 にすると元より長くなるのはなぜですか。⌄

入力 3 バイトが出力 4 文字になるため、パディングや改行を除いても結果は約 33 % 大きくなります。テキストとして安全な文字だけを使うことの代価です。サイズが問題になるなら、エンコードの後ではなく前に圧縮してください。Base64 の出力はほとんど圧縮が効きません。

デコードした文字が意味をなさないのはなぜですか。⌄

多くは次の 3 つのどれかです。元のデータがそもそもテキストではなかった(画像や鍵の場合で、このツールはバイト列を表示します)、base64url の文字列を標準 Base64 として、あるいはその逆でデコードしている、元のバイト列が UTF-8 ではなかった。変換の詳細パネルに検出した文字セットとパディングが出るので、ふつうはそれで原因がわかります。

📖
詳しいガイド
Base64 解説: エンコードとデコードの仕組み
ガイド全文を読む →
最終更新日:2026年10月18日
このページを共有