Base64エンコーダー・デコーダー
テキスト・ファイル・画像のBase64エンコードとデコード — Data URI対応、ブラウザ内で完結。
Base64エンコード・デコードツール(オンライン・無料)
Base64は任意のバイト列を64文字の短く安全な文字集合に変換する方式です。メールヘッダー、JSON文字列、URL、XML属性、コピー&ペーストのいずれを通っても壊れません。このオンラインBase64変換ツールは双方向に即座に動作します。テキストを貼り付けてエンコードを押せばBase64になり、Base64文字列を貼り付けてデコードを押せば元の内容に戻り、ファイルタブに切り替えれば画像やPDFなど任意のファイルをBase64に変換できます。
アカウント登録も、順番待ちも、アップロードもありません。選んだファイルはブラウザー自身が読み取ります。変換はネイティブのJavaScriptで実行されるため、長いペイロードでも高速で、社内データを扱っても十分に安全です。
Base64エンコードとは
Base64はバイナリをテキストとして表現するための符号化方式です。データを3バイトずつ読み取り、その24ビットを6ビットずつ4つに分割し、それぞれをA-Z a-z 0-9 + /の文字に対応させます。入力の長さが3の倍数でない場合は、パディングとして=が1つまたは2つ追加されます。結果は元データより約33%大きくなりますが、制御文字を含まず、テキストベースのプロトコルで壊れる要素がありません。
オンラインでBase64を変換する手順
- テキストならテキストタブ、ファイルを変換するならファイルタブを使います。
- テキストを貼り付けます。プレーンテキスト、JSON、XMLの断片、既存のBase64文字列のいずれでも構いません。
- 読めるテキストをBase64にするにはエンコードを、Base64文字列を元の内容に戻すにはデコードをクリックします。
- ファイルタブではアップロード領域にファイルをドロップするとBase64がすぐに表示されます。貼り付けてすぐ使える
data:値が必要ならデータURI接頭辞をオンにします。 - 結果はコピーでコピー、ダウンロードでファイルとして保存、クリアでやり直せます。
画像を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 / macOS | base64 file.png または echo -n 'text' | base64 | base64 -d encoded.txt(古いmacOSでは -D) |
| PowerShell | [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.png')) | [Convert]::FromBase64String($s) |
| Python | base64.b64encode(data) | base64.b64decode(s) |
| JavaScript | ブラウザでは btoa(str)、Nodeでは Buffer.from(str).toString('base64') | atob(s) / Buffer.from(s, 'base64') |
| PHP | base64_encode($data) | base64_decode($s) |
| Java | Base64.getEncoder().encodeToString(bytes) | Base64.getDecoder().decode(s) |
落とし穴がひとつ:btoa はLatin-1しか受け付けないため、日本語や絵文字を含むテキストをブラウザでエンコードするには先に TextEncoder を通す必要があります。上のツールはUTF-8を自動で処理するので、その手順を思い出すより速いことが多いのです。
関連ツール
Base64は単独で使われることが少ない形式です。Base64URLセグメントで構成されたトークンはJWTデコーダーで確認し、クエリ文字列用の値はURLエンコードツールで処理し、デコード結果はJSON整形ツールで読みやすくし、チェックサムはハッシュ生成ツールで作成できます。