エンコーディング 🔒 ブラウザ内で動作 — データは送信されません

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

テキスト・ファイル・画像のBase64エンコードとデコード — Data URI対応、ブラウザ内で完結。

入力
出力

Base64エンコード・デコードツール(オンライン・無料)

Base64は任意のバイト列を64文字の短く安全な文字集合に変換する方式です。メールヘッダー、JSON文字列、URL、XML属性、コピー&ペーストのいずれを通っても壊れません。このオンラインBase64変換ツールは双方向に即座に動作します。テキストを貼り付けてエンコードを押せばBase64になり、Base64文字列を貼り付けてデコードを押せば元の内容に戻り、ファイルタブに切り替えれば画像やPDFなど任意のファイルをBase64に変換できます。

アカウント登録も、順番待ちも、アップロードもありません。選んだファイルはブラウザー自身が読み取ります。変換はネイティブのJavaScriptで実行されるため、長いペイロードでも高速で、社内データを扱っても十分に安全です。

図:テキスト「Man」をバイトとビットに分解し、4つの6ビット値に並べ替えてBase64文字列「TWFu」にする流れ。テキストバイトビット6ビット値Base64M77a97n11001001101011000010110111019T22W5F46u
Base64は3バイト(24ビット)を0〜63の4つの6ビット値に分け、それぞれを1文字で表します。「Man」は「TWFu」になります。エンコード後のデータが約3分の1大きくなるのはこのためです。

Base64エンコードとは

Base64はバイナリをテキストとして表現するための符号化方式です。データを3バイトずつ読み取り、その24ビットを6ビットずつ4つに分割し、それぞれをA-Z a-z 0-9 + /の文字に対応させます。入力の長さが3の倍数でない場合は、パディングとして=が1つまたは2つ追加されます。結果は元データより約33%大きくなりますが、制御文字を含まず、テキストベースのプロトコルで壊れる要素がありません。

オンラインでBase64を変換する手順

  1. テキストならテキストタブ、ファイルを変換するならファイルタブを使います。
  2. テキストを貼り付けます。プレーンテキスト、JSON、XMLの断片、既存のBase64文字列のいずれでも構いません。
  3. 読めるテキストをBase64にするにはエンコードを、Base64文字列を元の内容に戻すにはデコードをクリックします。
  4. ファイルタブではアップロード領域にファイルをドロップするとBase64がすぐに表示されます。貼り付けてすぐ使えるdata:値が必要ならデータURI接頭辞をオンにします。
  5. 結果はコピーでコピー、ダウンロードでファイルとして保存、クリアでやり直せます。

画像をBase64に変換する方法

ファイルタブを開き、埋め込みたいPNG・JPG・SVG・アイコンをドロップします。バイト列は端末内で読み取られ、Base64がすぐに表示されます。プレビューも出るので、目的の画像かどうかをその場で確認できます。データURI接頭辞をオンにするとdata:image/png;base64,...の完全な値が得られ、CSSのbackground-image、imgタグ、JSONのフィールドにそのまま貼り付けられます。逆方向も同じです。data URIをテキストタブに貼り付けてデコードを押すと、読めない文字列が並ぶ代わりに画像がプレビュー表示され、ダウンロードとして受け取れます。10MBまでのファイルに対応します。

Base64をPDFにデコードする

請求書、配送ラベル、レポートを返すAPIは、PDFを1本の長いBase64文字列として送ってくることがよくあります。たいていはJVBERi0で始まり、これは%PDF-をBase64にしたものです。data:application/pdf;base64,の接頭辞が付いていてもいなくても、そのままテキストタブに貼り付けてデコードをクリックします。ツールは先頭のバイト列からPDFだと認識し、出力のすぐ下にブラウザー標準のPDFビューアーで表示します。ダウンロードを押せばdecoded.pdfとして保存でき、PDF を新しいタブで開くを押せばウィンドウ全体で表示できます。逆方向なら、PDFをファイルタブにドロップするとBase64が得られます。Base64をPDFに変換のページは、まさにこの用途向けにデコーダーを準備した状態で開きます。

Base64が実際に使われている場所

  • HTTP Basic認証のヘッダー。ユーザー名:パスワードを1つのBase64文字列として送ります。
  • 小さなアイコンやフォントをCSSやHTMLに直接埋め込むデータURI。追加のリクエストが不要になります。
  • メールの添付ファイル。MIMEは1990年代からバイナリ部分をBase64で符号化しています。
  • JSON Web Token。ヘッダーとペイロードはBase64URLのセグメントです。
  • ファイル・証明書・署名をJSONの文字列フィールドに載せる必要があるAPIのペイロード。
  • KubernetesのSecretや多くのCI/CDシステム。YAML内に値をBase64で保存します。

Base64は暗号化ではありません

これは最もよくある誤解であり、セキュリティ上の実害につながります。Base64には鍵も秘密もなく、文字列を見た人は誰でもワンクリックで復元できます。まさに今このページで行おうとしている操作そのものです。パスワード、APIキー、個人情報を隠す目的でBase64を使ってはいけません。機密性が必要なら先に暗号化し、その暗号文を転送用にBase64化してください。データが改ざんされていないことを示したい場合は、ハッシュ生成ツールのチェックサムを使います。

標準Base64とBase64URLの違い

違いは2文字だけです。標準のBase64は+と/を使いますが、どちらもURLやファイル名の中では特別な意味を持ちます。Base64URLはこれらを-と_に置き換え、通常は=のパディングも省きます。JWT、OAuthのパラメーター、多くの最新APIはこのURLセーフな変種を使っているため、トークンがデコードできないときはデータ破損を疑う前にこの置き換えを確認してください。

よくあるBase64の問題と対処法

  • 不正な文字のエラー:コピー時に引用符や周囲の文章が紛れ込んでいます。空白と改行は自動で取り除かれるので、文字列に属さない部分だけを削除してください。
  • パディング不正:正しいBase64文字列の長さは4の倍数です。欠けた=は自動で補われ、-と_を使うBase64URLも変換されます。
  • データURIの接頭辞:data:image/png;base64,はそのままで構いません。自動的に検出・除去され、デコード後のファイル名にも使われます。
  • 日本語や絵文字が化ける:元のバイト列がUTF-8ではありません。本当にバイナリの内容は自動判定され、壊れた文字として表示される代わりにダウンロードとして提供されます。
  • 出力が想定より長い:約33%増えるのは正常で、変換が実行された証拠にもなります。

データは端末の外に出ません

エンコードもデコードも完全にクライアント側で実行され、選んだファイルもどこかへ送られるのではなくブラウザーが読み取ります。サーバーへ送信されることも、ログに記録されることも、タブを閉じた後に残ることもありません。セッショントークン、設定値、顧客情報を含むサポートチケットなど、変換ツールに貼り付けられがちなデータにとって、この点は決定的に重要です。

コマンドラインやコードでBase64をエンコード・デコードする

プラットフォームエンコードデコード
Linux / macOSbase64 file.png または echo -n 'text' | base64base64 -d encoded.txt(古いmacOSでは -D)
PowerShell[Convert]::ToBase64String([IO.File]::ReadAllBytes('file.png'))[Convert]::FromBase64String($s)
Pythonbase64.b64encode(data)base64.b64decode(s)
JavaScriptブラウザでは btoa(str)、Nodeでは Buffer.from(str).toString('base64')atob(s) / Buffer.from(s, 'base64')
PHPbase64_encode($data)base64_decode($s)
JavaBase64.getEncoder().encodeToString(bytes)Base64.getDecoder().decode(s)

落とし穴がひとつ:btoa はLatin-1しか受け付けないため、日本語や絵文字を含むテキストをブラウザでエンコードするには先に TextEncoder を通す必要があります。上のツールはUTF-8を自動で処理するので、その手順を思い出すより速いことが多いのです。

関連ツール

Base64は単独で使われることが少ない形式です。Base64URLセグメントで構成されたトークンはJWTデコーダーで確認し、クエリ文字列用の値はURLエンコードツールで処理し、デコード結果はJSON整形ツールで読みやすくし、チェックサムはハッシュ生成ツールで作成できます。

関連ガイド