Base64 エンコード / デコード

テキストを Base64 にエンコード、または元に戻すデコード — UTF-8 対応。

100%プライベート — すべてブラウザ内で動作します。データはお使いの端末で処理され、インターネットに送信されることはありません。

このツールについて

この無料の Base64 エンコーダー / デコーダー は、テキストを Base64 に変換し、また元に戻します。UTF-8 に対応しているため、絵文字、アクセント付きの文字、日本語、中国語、韓国語、アラビア語、キリル文字も往復して壊れません — 驚くほど多くの Base64 ツールには、これが言えません。

すべてブラウザー内で動作します。貼り付けた内容がアップロードされることも、記録されることも、誰かに見られることもありません。ここではそれが他のツール以上に重要です。人々は API キーやトークン、設定の断片を日常的に Base64 変換ツールに貼り付けているからです。

Base64 とは実際には何か

Base64 は暗号化ではありません。圧縮でもありません。*あらゆる*データを、ほぼどこへでも安全に送れる 64 個の文字だけで書き直す方法です。使うのは A–Z、a–z、0–9、+、/ で、末尾の詰め物として = を使います。

存在理由は歴史的なもので、今なお有効です。多くのシステムはテキストを運ぶために作られており、任意のバイト列を運ぶようにはできていません — メール本文、JSON の文字列、XML の属性、HTTP ヘッダー、URL、環境変数。そうしたシステムに 0x00 や 0x1B のような生のバイトを渡せば、途中のどこかがそれを壊すか、取り除くか、メッセージ自体を拒否します。Base64 は、そうしたバイトを誰も文句を言わないふつうの文字と数字に変えることで、この問題をまるごと回避します。

仕組みは単純です。Base64 はデータを 3 バイトずつ(24 ビット)取り、4 文字(各 6 ビット)として書き直します。この比率のために、Base64 の出力は常に元より約 33% 大きくなります。データが 3 で割り切れないときは、最後のグループが 1 個か 2 個の = で埋められます。

Base64 は秘密ではありません

これははっきり書く価値があります。実際のセキュリティ事故を引き起こしているからです。

Base64 は誰でもデコードできます。鍵もパスワードも秘密もありません。このページは一瞬でデコードしますし、あらゆる開発者、あらゆるログ解析ツール、そしてそれを見つけた攻撃者も同じことができます。cGFzc3dvcmQxMjM= は隠されたパスワードではなく、password123 という単語がごく薄い変装をしているだけです。

つまり Base64 は運ぶためには適しています。しかし何かを守るための手段では、これまでも今も、ありません。読めないままにしておきたいなら、本物の暗号化が必要です。値が*かき混ぜられて見える*ことと、*守られている*ことは同じではありません。

これは逆方向にも役立ちます。ログファイルや設定、URL の中に = で終わる長い英数字の並びを見つけたら、それはほぼ確実に Base64 であり、そのまま読めるということです。

どこで出会うか

  • データ URL — data:image/png;base64,iVBORw0KGgo… は画像を HTML や CSS に直接埋め込み、別ファイルを不要にします
  • HTTP Basic 認証 — Authorization ヘッダーは文字どおり ユーザー名:パスワード の Base64 です。HTTPS なしの Basic 認証が危険なのはまさにこのためです
  • JSON Web Token — JWT はピリオドで結ばれた 3 つの Base64url ブロックで、最初の 2 つはそのまま読める JSON です
  • メールの添付ファイル — MIME は何十年も、テキストしか通さないメールシステムを通してバイナリファイルを Base64 で運んできました
  • 設定ファイルとシークレット — Kubernetes の Secret、.env ファイル、CI の変数は値を Base64 で保存することが多く、これも安全性ではなく運搬のためです
  • API — JSON 文字列の中にバイナリデータを載せる必要があるあらゆるフィールド

UTF-8 と、一部のツールが間違える理由

Base64 が符号化するのはバイトであって文字ではありません。ですから何かを符号化する前に、テキストをバイトに変換する必要があり — その段階でツールは静かに壊れます。

典型的な不具合は、純粋な ASCII 以外を含むテキストに対して、1 文字 1 バイトの変換を使ってしまうことです。そのように書かれたツールに café や 日本語 や絵文字を貼り付けると、エラーになるか、さらに悪いことに、静かに壊れた出力が返り、デコードすると文字化けになります。

このツールはまずテキストを UTF-8 に変換します。ウェブが実際に使っている符号化方式です。é、→、🎉、한국어 はすべて、入力したとおりに符号化され、そのまま元に戻ります。

標準 Base64 と Base64url

2 つの種類があり、これを取り違えることが「有効な Base64 ではありません」というエラーのよくある原因です。

標準 Base64 は最後の 2 文字に + と / を使います。このツールが生成するのはこれで、ほとんどのシステムが期待しているのもこれです。

Base64url はそれを - と _ に置き換え、= の詰め物もたいてい省きます。+ と / は URL やファイルパスの中で独自の意味を持つため、そのままではエスケープが必要になるからです。JWT は Base64url を使い、パスやクエリ文字列に符号化した値を置く多くの API も同様です。

- と _ だらけの文字列でデコードが失敗するなら、理由はこれです。+ と / に戻せばたいてい解決します。

使い方

  • テキスト(または Base64)を入力欄に貼り付けます
  • ボタンでエンコードまたはデコードします
  • 入れ替えて結果を入力欄に送り、逆方向に進めます
  • 結果をコピーします

知っておくとよいこと

  • Base64 の出力は元より約 33% 大きくなります。 3 MB の画像はデータ URL にすると約 4 MB になります。大きなファイルを埋め込む前に覚えておく価値があります。
  • 空白はたいてい無害です。 多くのシステムは Base64 を 1 行 76 文字で折り返しますが、デコーダーは通常その改行を無視します。
  • = は末尾にのみ現れ、途中には現れません。1 個か 2 個で、3 個になることはありません。
  • 詰め物を含めた長さは必ず 4 の倍数です。 そうでなければ、どこかで切れています。
  • 任意のバイナリをテキストに戻すと意味不明に見えます。 PNG を Base64 デコードすれば得られるのはバイト列であって単語ではありません — 正常であり、失敗ではありません。

よくある質問

Base64 は暗号化ですか?

いいえ。そしてこれが最も重要な点です。Base64 には鍵も秘密もありません。その文字列を見た人は誰でも一手順でデコードできます。このページも同じです。安全に運ぶための符号化であって、保護ではありません。パスワードやトークン、その他重要なものを隠す目的で使ってはいけません。

Base64 の末尾に等号が 1 つか 2 つ付くのはなぜですか?

詰め物です。Base64 は 3 バイトのまとまりを 4 文字に変えます。データが 3 で割り切れないと最後のまとまりが足りなくなり、全体の長さを 4 の倍数に保つために = で埋められます。1 バイト余ると ==、2 バイト余ると =、ちょうど割り切れれば詰め物は付きません。

Base64 の文字列が元より長いのはなぜですか?

3 バイトごとに 4 文字になるため、出力は常に入力より約 33% 大きくなり、さらに最大 2 文字の詰め物が付きます。これは避けられず、任意のデータをテキスト欄に安全に入れるための代償です。サイズが問題になるなら、符号化の後ではなく前にデータを圧縮してください。

画像や PDF を Base64 にできますか?

はい。よくある用途で、データ URL が HTML や CSS に画像を埋め込むのもこの方法です。このツール自体は貼り付けたテキストを扱うので、トークン、JSON、設定値、既存の Base64 文字列に向いています。大きなものを埋め込む前に、33% の増加を思い出してください。

「有効な Base64 ではありません」とデコードが失敗するのはなぜですか?

よくある原因は、文字列が途中で切れている、余計な文字が一緒に貼り付けられている、または Base64url であることです。Base64url は標準 Base64 の + と / の位置に - と _ を使い、詰め物も外されていることが多いため、JWT のブロックをそのまま貼り付けてもデコードできない場合があります。- を + に、_ を / に置き換えて試してください。

入力したテキストはサーバーに送信されますか?

いいえ。変換はすべてブラウザー内蔵の機能を使って行われます。何もアップロードされず、何も保存されないため、接続を切っても動作します。人々がどれほど頻繁に認証情報を Base64 ツールに貼り付けるかを考えれば、これこそが要点です。

関連ツール

ビデオチュートリアル

新しいツールを定期的に追加しています。公開時にお知らせを受け取るにはYouTube でチャンネル登録してください。

他のツール

すべて表示

おすすめアプリ

すべて表示