本文へスキップ
ToolMug

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

テキストや任意のファイルを Base64 に変換したり、Base64 を読めるテキストや元のファイルに戻したりできます。UTF-8 を正しく扱い、JWT で使われる URL セーフ形式にも対応。処理はすべてブラウザ内で行われます。

ブラウザ内で動作 — 入力した内容はアップロードされません

使い方

  1. 「エンコード」か「デコード」を選びます。
  2. エンコードする場合は、テキストを入力するか、「ファイル」に切り替えて画像、PDF、フォントなど任意のファイルを選びます。
  3. URL セーフな文字、パディング、data URL での出力などのオプションを選びます。
  4. 結果をコピーします。画像などのバイナリデータをデコードした場合は、ファイルとしてダウンロードします。

オプションの説明

URL セーフ
+ と / を - と _ に置き換えるため(RFC 4648 §5)、結果を URL やファイル名に使えます。JWT はパディングなしのこの形式を使います。
パディング
末尾に = を付けて、長さを 4 の倍数にします。必要とするシステムもあれば、JWT のように省略するものもあります。デコーダーはどちらも受け付けます。
76 文字ごとに改行
出力を 76 文字ごとの行に分割します。メール(MIME)や PEM ファイルで必要な形式です。
data URL
data:image/png;base64,… の形式で出力し、HTML や CSS の画像ソースとしてそのまま貼り付けられます。

例

入力 Base64
hello aGVsbG8=
hello(URL セーフ、パディングなし) aGVsbG8
日本語 5pel5pys6Kqe
バイト列 FB FF BF +/+/(標準)または -_-_(URL セーフ)

JWT のペイロードをデコードする

JWT はドットで区切られた 3 つの部分からなります。真ん中の部分はパディングなしの URL セーフな Base64 なので、「デコード」に貼り付けるとクレームを読めます。ただし、ここでは署名を検証しないため、デコードできたからといってトークンを信用しないでください。

よくある質問

Base64 は暗号化ですか?

いいえ。Base64 は誰でも元に戻せるエンコード方式で、バイト列を 64 種類の印字可能な文字で表しているだけです。パスワードや秘密情報を隠す目的には絶対に使わないでください。

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

3 バイトごとに 4 文字になるため、Base64 は約 33% 大きくなります。改行を有効にした場合は、さらに改行の分が加わります。

デコードすると文字化けしたり、バイナリデータに関するエラーが出たりするのはなぜですか?

その Base64 に UTF-8 テキストではないバイト列が含まれているためです。多くの場合、画像、zip、暗号化されたデータです。「デコードしたファイルをダウンロード」を使ってください。一般的な画像形式は自動で判別され、それに合ったファイル名が付きます。

CSS や HTML に画像を埋め込むには?

「ファイル」に切り替えて「data URL として出力」にチェックを入れ、画像を選んで、結果を src="…" や url(…) に貼り付けます。小さなアイコンに最適で、大きな画像はページの表示が遅くなります。

日本語や絵文字など、英語以外のテキストにも対応していますか?

はい。テキストはエンコード前に UTF-8 のバイト列に変換されます。btoa(unescape(encodeURIComponent(…))) や Python の base64.b64encode(s.encode()) と同じ結果になります。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール