Base64エンコード・デコード|無料ツール
Unicode対応・URLセーフモード・バッチ処理を備えたBase64エンコーダー/デコーダー。ブラウザ内でリアルタイム変換、ログイン不要でプライバシーも安心。
Base64 Encoder/Decoderとは?
Base64 Encoder/Decoderは、テキストをBase64エンコード済み文字列に変換し、Base64文字列をプレーンテキストにデコードするツールです。Base64は64種類の印刷可能なASCII文字を使ってバイナリデータを表すバイナリ・テキスト変換方式であり、テキストしか扱えないシステム — メールプロトコル、JSONフィールド、HTTPヘッダー、データURL — を経由しても安全に送信できます。このツールは2つのよくある問題を解決します。任意のテキスト(Unicode文字を含む)をポータブルなASCII文字列にエンコードすること、そしてログ・APIレスポンス・JWTペイロードに含まれるBase64文字列を読める形のテキストにデコードすることです。すべての処理は標準のWeb APIを使ってブラウザ内で完結します。テキストがサーバーに送信されることはなく、アカウント登録も不要です。
主な機能
- テキストをBase64にエンコード —
btoa()の前にTextEncoderを使って正確なバイト処理を行い、任意のプレーンテキスト文字列をBase64表現に変換します。 - Base64をテキストにデコード —
atob()とTextDecoderを使って処理を逆転させ、マルチバイトUTF-8シーケンスも正しく処理します。 - 完全なUnicode/UTF-8サポート — 標準の
btoa()はLatin-1範囲外の文字で失敗しますが、このツールは先にTextEncoderでテキストをエンコードするため、日本語・アラビア語・絵文字などのASCII以外の文字も正しくエンコード・デコードできます。 - URLセーフBase64モード — チェックボックスでURLセーフエンコードを切り替えられます。
+を-に、/を_に置換し、末尾の=パディングを除去します。デコーダーはモードチェックボックスの状態に関わらず、URLセーフ入力を自動検出して正規化します。 - リアルタイム変換 — 入力が止まってから300ms後に出力が自動更新されるため、簡単な変換ではボタンをクリックする必要がありません。
- 結果をクリップボードにコピー — Clipboard APIを使って出力テキストをコピーします。古いブラウザ向けのフォールバックも備えています。
- テキストファイルとしてダウンロード — エンコード時は
encoded.b64、デコード時はdecoded.txtとして出力を保存します。 - 入力/出力を入れ替え — 現在の出力を入力フィールドに移し、ワンクリックで反対のモード(エンコード → デコードまたはデコード → エンコード)に切り替えます。
- バッチモード — 1行に1アイテムずつ複数のアイテムを処理し、行ごとのエラーレポートとともにテーブルで結果を表示します。
Base64 Encoder/Decoderの使い方
ステップ1:エンコードまたはデコードモードを選択
ツール上部の「Encode」「Decode」と書かれた2つのボタンでアクティブなモードを選択します。現在アクティブなモードがハイライトされます。これらのボタンの下にある「URL-safe mode」チェックボックスで、出力がURLセーフアルファベットを使用するかどうかを制御します。テキストを入力する前後どちらでも切り替え可能で、変更すると変換が自動的に再実行されます。
ステップ2:テキストを入力
エンコードモードでは、左パネルが「Text Input」とラベル付けされています。エンコードしたいテキストを貼り付けるか入力してください。文字数はリアルタイムで更新されます。デコードモードでは、左パネルが「Base64 Input」とラベル付けされています。ここにBase64文字列を貼り付けます。ツールは標準Base64(+、/、= 文字を含む)とURLセーフBase64(- と _ を含む)の両方を処理でき、どちらのフォーマットか指定する必要はありません。
ステップ3:出力を読み取るまたはトリガーする
最後のキーストロークから300ms以内に右パネルに出力が表示されます(ツールはデバウンス付き自動変換を使用しています)。メインのアクションボタンをクリックするか、Ctrl+Enter / Cmd+Enter を押して即座に変換することもできます。出力フィールドは読み取り専用で、エンコードまたはデコードされた結果が表示されます。
例 — エンコード:
- 入力:
Hello, World! 🌍 - モード:Encode、URL-safe:オフ
- 出力:
SGVsbG8sIFdvcmxkISDwn4yN
例 — デコード:
- 入力:
SGVsbG8sIFdvcmxkISDwn4yN - モード:Decode
- 出力:
Hello, World! 🌍
ステップ4:出力を使用
入力/出力パネルの下に4つのアクションボタンが表示されます:
- Swap / Switch Mode — 現在の出力を取り、入力フィールドに配置し、モードを反転させます。何かをエンコードした直後にデコードが正しく機能することを確認したいときに便利です。
- Copy — 出力をクリップボードにコピーし、確認のトーストを表示します。
- Download — 出力をファイル(モードに応じて
encoded.b64またはdecoded.txt)として保存します。 - Clear — 入力と出力の両フィールドをリセットします。
ステップ5:複数アイテムにバッチモードを使用
「Batch Mode」トグルをクリックしてバッチ処理に切り替えます。バッチ入力エリアに1行につき1アイテムを入力します。「Process All」をクリックして、現在のモードとURLセーフ設定を使って各行をエンコードまたはデコードします。結果は元の入力、処理済み出力、または失敗した行のエラーメッセージを示すテーブルに表示されます。「Copy All Results」ボタンで、全出力値を改行で結合してコピーできます。
実用的な例
HTTP Basic Auth用のAPIクレデンシャルをエンコード
HTTP Basic Authenticationは、username:password 形式のクレデンシャルをBase64エンコードして Authorization ヘッダーに配置することを要求します。エンコーダーに myuser:s3cr3tpassword を入力すると、結果 — たとえば bXl1c2VyOnMzY3IzdHBhc3N3b3Jk — をそのままヘッダーに Authorization: Basic bXl1c2VyOnMzY3IzdHBhc3N3b3Jk として使えます。Basic AuthクレデンシャルにはASCII文字しか含まれないため、ここではURLセーフモードは不要です。
Base64エンコードされたJSONペイロードをデコード
OAuthやSAMLトークンをデバッグする際、レスポンスに埋め込まれたBase64エンコードされたJSONブロブを読む必要があることがよくあります。エンコードされた文字列をデコーダーに貼り付けます。文字列がURLセーフエンコードを使用している場合(. でセグメントが区切られるJWTペイロードで一般的)、ツールは - と _ の文字を自動検出し、デコード前に正規化するため、アルファベットを手動で変換する必要はありません。デコードされたJSONが出力パネルに表示され、JSONフォーマッターでのさらなる検査のためにコピーできます。
ログエントリのバッチデコード
サーバーログには、セキュリティ上の理由からBase64エンコードされたユーザー入力やトークンが含まれることがあります。バッチモードに切り替え、エンコードされたログの値を1行に1つずつ貼り付けて、「Process All」をクリックします。結果テーブルには各デコードされた値と元の値が並んで表示され、各エントリを手動でデコードすることなくパターンや特定のコンテンツを簡単に確認できます。
ヒントとベストプラクティス
デコーダーはURLセーフ入力を自動的に処理します。 Base64文字列に - または _ の文字が含まれている場合、デコーダーはそれらをURLセーフBase64として認識し、デコード前に + と / に正規化してから、必要に応じて = パディングを再追加します。デコード時にURLセーフチェックボックスをトグルする必要はありません — エンコード時に出力がどのアルファベットを使用するかを制御する場合にのみ関連します。
クエリ文字列やCookieのトークンにはURLセーフモードを使用してください。 標準Base64は +(URLでは %2B にエンコードされる)と /(%2F にエンコードされる)を使用し、= パディングが含まれる場合があります。これらはいずれもURLコンテキストで解析問題を引き起こす可能性があります。URLセーフモードはこの3つの問題をすべて解消します。
スワップでラウンドトリップを確認してください。 エンコード後、「Swap / Switch Mode」をクリックします。エンコードされた出力がデコードターゲットとして入力フィールドに移り、モードがDecodeに切り替わります。変換を実行すると元の入力が正確に再現されるはずで、エンコードが正しくラウンドトリップしたことを確認できます。
繰り返し変換には、クリックよりもCtrl+Enterが速いです。 キーボードショートカット Ctrl+Enter(Macでは Cmd+Enter)は、300msのデバウンスを待ったりマウスに手を伸ばしたりすることなく、即座に変換をトリガーします。
よくある問題とトラブルシューティング
「Invalid Base64 string. Please check your input.」 — 入力に正規化後のBase64アルファベットでは無効な文字が含まれています。よくある原因:文字列内の余分な空白(端ではなく — トリミングは自動的に適用されます)、不可視文字が混入したコピー&ペーストの破損、適切な正規化なしのBase64URL文字列。文字列に A-Z、a-z、0-9、+、/、=(標準)または -、_(パディングなし、URLセーフ)のみが含まれているか確認してください。
出力が正しく見えるが期待より短い。 — エンコード時にURLセーフモードが有効だった場合、= パディングが除去されます。パディングを必要とするデコーダーはこの出力で失敗します。出力にパディングを含めるためにURLセーフモードをオフにしてください。
絵文字やASCII以外の文字が他のツールで文字化けした出力を生成する。 — このツールはBase64エンコード前にUnicodeテキストを TextEncoder(UTF-8バイト)を通してエンコードします。一部のツールは生の文字列に直接 btoa() を使用し、Latin-1文字しか処理しません。対象のデコーダーがLatin-1を前提とするのではなく、UTF-8バイトシーケンスも処理することを確認してください。
「Please enter text」 — 入力フィールドが空の状態でConvertをクリックまたはキーボードショートカットを押しました。変換前にテキストを追加してください。
プライバシーとセキュリティ
Base64 Encoder/Decoderは完全にブラウザ内で動作します。入力テキストはブラウザネイティブのAPI(TextEncoder、btoa、atob、TextDecoder)を使ってネットワークリクエストなしで処理されます。パスワード、APIキー、プライベートトークンなどの機密データがデバイスから出ることは一切ありません。エンコードやデコード操作のためのサーバーコンポーネントはありません。ブラウザでページが読み込まれれば、オフラインでも動作します。
よくある質問
Base64 Encoder/Decoderは無料ですか? はい。このツールはアカウント、サインアップ、使用制限なしで完全に無料です。
オフラインで使用できますか? はい。ページが読み込まれると、すべてのエンコードとデコードがブラウザ内でローカルに実行されます。実際の変換にインターネット接続は不要です。
ここに入力したデータは安全ですか? はい。このツールはエンコードやデコードのためのネットワークリクエストを一切行いません。テキストはブラウザのタブ内に留まります。ネットワークの動作を確認できない場合は、本番環境のシークレットのエンコードにオンラインツールを使用しないでください — このツールはブラウザのDevToolsで監査できます(変換中にNetworkタブで送信リクエストが表示されないことを確認できます)。
標準Base64とURLセーフBase64の違いは何ですか? 標準Base64は62番目と63番目の文字として + と / を使用し、= で出力を4文字の倍数に埋めます。URLセーフBase64は + を - に、/ を _ に置き換え、= パディングを省略します。URLセーフバリアントはパーセントエンコードなしでURL、クエリパラメーター、HTTPヘッダーに含めることができます。
中国語や絵文字などのUnicode文字を処理できますか? はい。エンコーダーは TextEncoder を通じてテキストを処理してUTF-8バイトを生成し、それらのバイトをBase64エンコードします。デコーダーはこれを逆転させます:Base64をバイトにデコードし、次に TextDecoder を通じてそれらを処理して元のUnicode文字列を復元します。これにより全てのUnicode文字が正しく処理されます。
変換のキーボードショートカットは何ですか? Windows/Linuxでは Ctrl+Enter、macOSでは Cmd+Enter を押して即座に変換をトリガーします。
ファイルをBase64にエンコードできますか? テキストモードツールは文字列のテキストコンテンツをエンコードします。画像などのバイナリファイルをBase64にエンコードするには、ファイルアップロードを受け付けて生のバイナリデータを読み取るツールを使用してください。現在のツールの入力フィールドはテキストのみを受け付けます。
Swapボタンは何をしますか? Swapボタンは現在の出力を取り、入力フィールドに配置し、反対のモードに切り替えます。エンコードしていた場合はデコードに切り替わり、その逆も同様です。これはラウンドトリップのクイック確認に便利です。
バッチモードはどのように機能しますか? バッチ入力テキストエリアに1行につき1アイテムを入力します。「Process All」をクリックすると、現在のモード(エンコードまたはデコード)とURLセーフ設定を使って各行が処理されます。結果はテーブルに表示されます。各行に元の入力と処理済み出力、またはその行が失敗した場合はエラーメッセージが表示されます。「Copy All Results」で全結果を一度にコピーできます。
Base64文字列が = 記号なしで終わるのはなぜですか? エンコード時にURLセーフモードが使用されたか(パディングを削除する)、元のデータ長がたまたま3バイトの倍数だったか(パディングが不要)のいずれかです。どちらも有効です。デコーダーはデコード前に必要に応じてパディングを再追加します。
関連ツール
JWT Encoder/Decoder はJWTヘッダーとペイロードセグメントに内部的にBase64URLエンコードを使用しています。URL Encoder/Decoder はクエリ文字列のパーセントエンコードを処理し、Webコンテキストでのベース64 URLセーフエンコードを補完します。JSON Formatter はJSONを含むデコードされたBase64ペイロードを読むのに便利です。
今すぐBase64 Encoder/Decoderを試す:Base64 Encoder/Decoder