無料 Base64 エンコーダー & デコーダー | OneStepToRank

Base64 エンコーダー & デコーダー

テキストをBase64にエンコード、またはBase64からプレーンテキストへデコード。UTF-8文字に対応し、完全にブラウザ内で動作するためサーバーへ送信されません。

Base64 をエンコード / デコード

支配する ローカル検索

開発者向けツールは序章に過ぎません。OneStepToRankはサービスエリア全体でGoogleランキングを24時間監視し、戦略を自動で最適化して常に上位を維持します。

無料で始める

Base64 エンコーディングとは?

Base64 はバイナリデータを印字可能なASCII文字列に変換するバイナリ→テキストのエンコーディング方式です。A〜Z の大文字、a〜z の小文字、0〜9 の数字、プラス記号 (+)、スラッシュ (/) の計64文字で任意のバイト列をエンコードします。入力長が3の倍数でない場合はイコール (=) でパディングします。Base64 は当初、メール (MIME) でバイナリ添付ファイルをテキストのみのプロトコルで安全に送信するために設計されましたが、現在はウェブ開発、API、データ保存の基本ツールとなっています。

Base64 の一般的な利用例

Base64 エンコーディングは現代のウェブ開発で広く利用されています。Data URI は画像、フォント、その他小さなアセットを HTML や CSS に直接埋め込み、HTTP リクエストを削減しますが、ファイルサイズは約33%増加します。API 認証 では Base64 が一般的に使用され、HTTP Basic Auth は username:password 文字列を Base64 にエンコードし、Authorization ヘッダーで送信します。JSON ペイロード では JSON がバイナリを直接扱えないため、Base64 エンコードされたバイナリデータがしばしば含まれます。メール添付ファイル(MIME 形式)も画像や文書などを Base64 でエンコードしてプレーンテキストメールに添付します。Base64 は暗号化ではなく、簡単に復号できるためセキュリティは全く提供しません。

Base64 エンコーディング表とパディング

Base64 アルゴリズムは入力を3バイト(24ビット)単位で読み取り、24ビットを4つの6ビットに分割します。各6ビットの値はエンコーディング表の64文字のいずれかに対応します。入力が3の倍数でない場合、= でパディングします:余りが1バイトの場合は = を1つ、余りが2バイトの場合は == を2つ付加します。これによりエンコード結果は常に4文字の倍数になります。一般的な変種であるBase64urlは、+- に、/_ に置き換え、URL やファイル名でパーセントエンコードなしで安全に使用できるようにします。

よくある質問

Base64 エンコーディングとは何ですか?
Base64 はバイナリデータを64文字の印字可能なASCII文字列に変換するバイナリ→テキストのエンコーディング方式です。メールなどテキストのみのチャネルでバイナリデータを安全に送信するために設計されました。エンコードは A-Z、a-z、0-9、+、/ の文字を使用し、パディングに = を用います。データサイズは約33%増加します。
Base64 エンコーディングはいつ使用すべきですか?
一般的な利用例は、HTML/CSS で data URI を使用して画像を埋め込む、メールでバイナリ添付ファイルをエンコードする、JSON API ペイロードでバイナリデータを送信する、HTTP Basic 認証ヘッダーで使用する、テキストベースの設定ファイルに小さなバイナリ値を保存する、などです。Base64 は暗号化ではなく、セキュリティを提供しないため、機密データを隠す目的で使用しないでください。
Data URI とは何ですか、また Base64 はそれとどのように関係しますか?
Data URI は外部ファイルへのリンクではなく、HTML や CSS にファイルをインライン文字列として直接埋め込む方式です。形式は data:[mediatype][;base64],data です。例えば小さな PNG は data:image/png;base64,iVBORw0KGgo... のように埋め込めます。これにより HTTP リクエストが不要になりますが、Base64 エンコードされたデータは元のファイルより約33%大きくなります。数キロバイト以下の小さなアイコンや画像に最適です。
Base64 エンコーディングは英語以外の文字でも機能しますか?
はい、可能ですが UTF-8 エンコーディングを正しく処理する必要があります。JavaScript の btoa() 関数は Latin-1 文字しか扱えません。UTF-8 テキスト(絵文字、中文、アラビア語など)をエンコードするには、まず encodeURIComponent と unescape を使って文字列を UTF-8 バイトに変換し、btoa に渡します。デコード時は atob、escape、decodeURIComponent を逆に使用します。このツールは UTF-8 を自動的に処理するため、言語を問わず文字エンコードの問題を気にせずにエンコード・デコードできます。