本文へスキップ
Case Converter Online
ja

Base64 エンコード・デコード

テキストを Base64 にエンコードしたり、Base64 を読めるテキストにデコードしたりできます。UTF-8 に完全対応しているので日本語もそのまま扱えます。ファイルを Base64 やデータURLに変換したり、Base64 をファイルとして保存したりすることも可能です。

双方向に変換できます。テキストは UTF-8 として読み込むので、日本語やアクセント記号、絵文字もそのまま元に戻ります。

ファイルを Base64 に変換

出力

ファイルが選択されていません。ファイルは端末内で読み込まれ、アップロードされることはありません。

Base64 からファイルへ

上の欄に Base64 を貼り付けてください。可能な場合はファイルの種類を自動で判別します。

Base64 とは

Base64 は、どんなデータでも64種類の安全な文字だけで書き表す方式です。使う文字は A から Z と a から z のアルファベット、0 から 9 の数字、そして記号の + と / です。メールや一部のWebフォームのように、プレーンテキストしか運べない仕組みのために考えられました。Base64 を使えば、画像も PDF も、日本語のようなどの言語のテキストも、壊れずにそうした仕組みを通過できます。

Base64 はさまざまな場所で使われています。メールの添付ファイル、CSS にデータURLとして埋め込んだ画像、JSON Web Token、API キー、HTTP の Basic 認証ヘッダー、設定ファイルなどです。

Base64 ツールの使い方

テキストをエンコードする。 「テキスト」欄に入力するか貼り付けます。入力に合わせて右側の欄に Base64 が表示されます。「コピー」を押すと取り出せます。

Base64 をデコードする。 右側の「Base64」欄に Base64 を貼り付けます。左側に元のテキストが表示されます。スペース、改行、パディングの欠け、data:...;base64, という接頭辞が含まれていても、そのまま受け付けます。

オプション

  • URLセーフ(- と _):+ を - に、/ を _ に置き換え、= のパディングを削除します。リンク、Cookie、ファイル名に使うときに選びます。
  • 76文字で改行:出力を76文字ごとの行に区切ります。メール(MIME)で使われる形式です。

「クリア」を押すと両方の欄が空になります。

ファイルを Base64 に変換。 25 MB までのファイルを選びます。そのままの文字列が欲しい場合は「Base64 のみ」、すぐに使える data:image/png;base64,... 形式が欲しい場合は「データURL」を選び、「コピー」を押してください。

Base64 をファイルに変換。 Base64 またはデータURLを貼り付けます。PNG、JPEG、GIF、WebP、PDF、ZIP などのよく使われる形式は自動で判別され、ファイル名の候補が表示されます。画像ならプレビューも表示されます。「ファイルをダウンロード」を押すと保存できます。

Base64 の仕組み

Base64 は入力を3バイト(24ビット)ずつ読み込みます。その24ビットを6ビットずつ4つのグループに分けます。6ビットのグループはそれぞれ0から63の数値になり、その数値で Base64 の文字表から1文字を選びます。3バイト入れると4文字出てくるわけです。そのため、Base64 の出力は入力よりも約3分の1大きくなります。

テキストはまず UTF-8 でバイトに変換されます。アクセント付きの文字や絵文字、日本語が正しく扱えるのはこのためです。café は5バイトになり、そのバイトがエンコードされます。日本語のひらがなや漢字は1文字が3バイトなので、日本語 は9バイトになり、Base64 では 5pel5pys6Kqe になります。古いツールの中にはブラウザの btoa 関数をそのまま使っているものがあり、Latin-1 の範囲外の文字、つまり日本語などを入れると失敗します。

変換例

入力 Base64 URLセーフ
M TQ== TQ
Ma TWE= TWE
Man TWFu TWFu
Hello, World! SGVsbG8sIFdvcmxkIQ== SGVsbG8sIFdvcmxkIQ
café Y2Fmw6k= Y2Fmw6k
Zoë Wm/Dqw== Wm_Dqw
<?> PD8+ PD8-

最後の2行を見ると、URLセーフ形式が必要な理由がわかります。リンクの中に / や + があるとリンクが壊れることがありますが、_ と - なら問題ありません。

ヒントと制限

  • Base64 はセキュリティ対策ではありません。 何も隠せません。Base64 のテキストは元のデータと同じものとして扱ってください。
  • エラーメッセージを確認しましょう。 * のような文字を含むものを貼り付けると、どの文字が Base64 として無効なのかを表示します。
  • バイナリデータはファイルで扱います。 デコードしたバイトが正しい UTF-8 テキストでない場合は、その旨が表示されます。同じ Base64 を「Base64 からファイルへ」に貼り付けて、ダウンロードしてください。
  • サイズが増えます。 3 MB の画像は約 4 MB の Base64 になります。データURLでの埋め込みは小さなアイコンには便利ですが、大きな写真では表示が遅くなります。
  • デコード時のパディングは省略可能です。 足りない = はツールが自動で補います。

そのほかの Base64 エンコード方法

コマンドライン(macOS・Linux)。 echo -n 'Hello, World!' | base64 を実行すると SGVsbG8sIFdvcmxkIQ== と表示されます。デコードには base64 -d(古い macOS では base64 -D)を使います。-n を付け忘れると、末尾の改行までエンコードされてしまいます。

Windows。 certutil -encode input.txt output.txt でファイルをエンコードできます。PowerShell では [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World!')) でテキストをエンコードできます。

JavaScript(Node)。 Buffer.from('Hello, World!').toString('base64') は SGVsbG8sIFdvcmxkIQ== を返し、Buffer.from('SGVsbG8=', 'base64').toString() は Hello を返します。

Python。 base64.b64encode('Hello, World!'.encode()).decode() で同じ結果になります。なお base64.urlsafe_b64encode は = のパディングを残すため、Zoë は Wm_Dqw== になります。

関連ツール

テキストをWebアドレスで使える形にするには、URLエンコード・デコードを使ってください。テキストの元になっているバイトを確認したい場合は、16進数テキスト変換やUTF-8 エンコードツールが便利です。

Base64 エンコーダーのよくある質問

Base64 をテキストにデコードするには?

Base64 を右側の欄に貼り付けてください。貼り付けると同時に、左側にデコードされたテキストが表示されます。たとえば SGVsbG8sIFdvcmxkIQ== は Hello, World! にデコードされます。中身が画像などのファイルの場合は、「Base64 からファイルへ」のパネルを使ってください。

Base64 は暗号化の一種ですか?

いいえ。Base64 はバイトの書き表し方を変えるだけです。鍵もパスワードも不要で、誰でもすぐにデコードできます。パスワード、トークン、個人情報を隠す目的では絶対に使わないでください。

URLセーフな Base64 とは何ですか?

リンクやファイル名の中に入れられるように、2つの文字を置き換えた Base64 です。+ は - に、/ は _ になります。末尾の = によるパディングも通常は省略されます。たとえば Zoë は標準の Base64 では Wm/Dqw==、URLセーフ形式では Wm_Dqw になります。このツールはどちらの形式もデコードできます。

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

Base64 は3バイトごとに4文字へ変換します。入力の長さが3の倍数でないときは、出力が4の倍数の長さになるように最後のグループを = で埋めます。Ma は TWE=、M は TQ== になります。

ファイルはアップロードされますか?

いいえ。ファイルはブラウザが読み込み、お使いの端末の中で変換します。サーバーには何も送信されないので、社外秘の書類なども安心して変換できます。

その他のコード・データツール

すべてのツールを見る